我在macOS Ventura 13.2上使用Xcode 14.2,通过New Project〉iOS〉Document App使用Xcode的模板创建iOS应用。我使用Objective-C,而不是Swift。我正在模拟器的“iPad Pro(12.9英寸)第六代- iOS 16.2”模块中进行测试。
该模板创建了一个UIDocumentBrowserViewController子类和一个UIDocument子类,我一直在填充这些子类。
我有两个问题。
首先,文档浏览器忽略了它自己的shouldShowFileExtensions属性,我将它设置为NO,并且在运行时检查它仍然是NO;但是浏览器视图仍然显示文件扩展名。
第二,我真的希望浏览器显示UIDocument.localizedName字符串而不是文件名。这是UIDocument的一个只读属性,应该可以被子类覆盖以返回任何你想要的字符串。我的UIDocument子类的覆盖从来没有被调用过。
覆盖如下所示:
- (NSString*)localizedName
{
return [self projectName];
}
我没有对我的子类做任何奇怪的事情;我已经尽了最大的努力,一丝不苟地遵循苹果的指导方针和文档。我的应用程序会创建文档,这些文档稍后会出现在浏览器中,而且可以再次打开和显示,所以基本功能是正常的;但我无法控制浏览器中文档的显示名称。
我做错什么了?先谢谢你的帮助。
1条答案
按热度按时间bis0qfac1#
localizedName不用于文档浏览器,否则它必须为用户访问的目录中的每个文件创建一个UIDocument!这将对性能产生巨大影响。LocalizedName仅用于在文档打开后在错误消息等中显示文档名称,如文档中所述。