设置 DirectoryUrl 属性时,UIDocumentPickerViewController 中的取消按钮不可用
Posted
技术标签:
【中文标题】设置 DirectoryUrl 属性时,UIDocumentPickerViewController 中的取消按钮不可用【英文标题】:Cancel button is not available in UIDocumentPickerViewController when DirectoryUrl property is set 【发布时间】:2020-05-05 13:35:11 【问题描述】:在 Xamarin.Forms 应用程序中,我使用 UIDocumentPickerViewController 向用户显示文件选择器。它有一个属性 DirectoryUrl 可以在 ios 13.0 及更高版本中使用。基本上根据文档,此属性设置文件选择器的初始目录。
文档链接: https://developer.apple.com/documentation/uikit/uidocumentpickerviewcontroller/3183918-directoryurl
如果我设置了 DirectoryUrl 属性,那么它会打开文件选择器,其中最初设置的目录在文件选择器中选择了浏览选项卡,但取消按钮在顶部不可见。
当用户转到最近的标签并返回浏览标签时,只有取消按钮可见。
如果用户使用最近选项卡上的取消按钮取消文件选择器,那么浏览选项卡上的取消按钮也将不可见。
代码:
var allowedUtis = new string[]
UTType.Content,
UTType.Item,
UTType.Data
;
if (allowedTypes != null)
allowedUtis = allowedTypes;
var documentPicker = new UIDocumentPickerViewController(allowedUtis, UIDocumentPickerMode.Import);
if (UIDevice.CurrentDevice.CheckSystemVersion(13, 0))
// DirectoryUrl property only works in iOS SDK 13.0+
// _documentsPath is path for folder
docPicker.DirectoryUrl = new NSUrl(_documentsPath, true);
documentPicker.DidPickDocument += this.DocumentPicker_DidPickDocument;
documentPicker.WasCancelled += this.DocumentPicker_WasCancelled;
documentPicker.DidPickDocumentAtUrls += this.DocumentPicker_DidPickDocumentAtUrls;
UIViewController viewController = GetActiveViewController();
viewController.PresentViewController(documentPicker, true, null);
【问题讨论】:
请向我们提供一些代码,以便我们知道您已经尝试过什么。 ***.com/help/minimal-reproducible-example 【参考方案1】:这是我已向 Apple 报告的已知错误。遗憾的是,它在 iOS 14 测试版中仍未修复。
【讨论】:
以上是关于设置 DirectoryUrl 属性时,UIDocumentPickerViewController 中的取消按钮不可用的主要内容,如果未能解决你的问题,请参考以下文章