macos – TOpenDialog / NSOpenPanel无法在沙盒Delphi应用程序中
Firemonkey应用程序中的TOpenDialog似乎存在问题,该应用程序是为Mac Appstore沙箱化的.我使用XE3,但它也存在于XE2中.
我实际上在这里找到了QC报告,但它仍然没有得到解决: http://qc.embarcadero.com/wc/qcmain.aspx?d=105344 有没有人有同样的问题,或任何想法如何解决它? 这很容易检查.只需在表单上放置一个TOpenDialog并调用Execute方法即可.根据Embarcadero说明对应用程序进行签名和沙箱: http://docwiki.embarcadero.com/RADStudio/en/Mac_OS_X_Application_Development 当调用Execute时有一个延迟,应用程序冻结片刻,但没有显示任何内容.没有例外或错误消息. 此代码也不起作用,因此问题可能在TNSOpenPanel中的某个地方,由TOpenDialog调用,但遗憾的是我无法找到它. var LOpenDir: NSOpenPanel; begin LOpenDir := TNSOpenPanel.Wrap(TNSOpenPanel.OCClass.openPanel); LOpenDir.runModal; LOpenDir.release; 我在Apple docs中读到,使用Sandbox时,NSOpenPanel来自不同的类,与没有沙盒的类相比. 任何想法将不胜感激.我们无法真正发布一个必须使用没有打开/保存对话框的文件的应用程序:) 顺便说一句,我尝试了项目选项中的权利的几种组合,但它们没有效果. 解决方法
当应用程序位于沙箱中时,NSOpenPanel / NSSavePanel应由名为Powerbox的透明模块管理. AppKit框架的常规面板无效.但要启用Powerbox以访问文件系统,权利列表应包括
com.apple.security.files.user-selected.read-write YES 组态. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Delphi 程序启动报错 "A call to an OS function faile
- Delphi2007获取对象的published方法
- 为什么Perl 5在抱怨未初始化的值时会告诉你变量的名称?
- perl – 用于CGI :: Application应用程序的nginx fastcgi配
- vb.net – 向整数数组添加新值(Visual Basic 2010)
- 如何在python文件中测试sql语句
- ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
- Delphi字符串、PChar与字符数组之间的转换
- 考虑到Perl中的包名,如何从包中调用子例程?
- .net – 将扩展方法应用于泛型类的泛型类