设置 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 中的取消按钮不可用的主要内容,如果未能解决你的问题,请参考以下文章

尝试关闭 UIDocument 时防止崩溃

Revit二次开发API PromptForFamilyInstancePlacement

在沙盒应用程序中使用 NSSavePanel 替换文件

phpcms安装时设置文件属性

SpringBoot启动jar包时设置临时属性

如何获取用户在安装 WIX 设置时输入的属性值?