在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);