VGe*_*iev 7 delphi macos sandbox firemonkey delphi-xe3
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;
Run Code Online (Sandbox Code Playgroud)
我在Apple文档中读到,与没有沙箱的沙盒相比,使用Sandbox时,NSOpenPanel来自不同的类.我想这就是问题的原因.
任何想法将不胜感激.我们无法真正发布一个必须使用没有打开/保存对话框的文件的应用程序:)
顺便说一句,我尝试了项目选项中的权利的几种组合,但它们没有效果.
小智 0
当应用程序位于沙箱中时,NSOpenPanel/NSSavePanel 应由名为 Powerbox 的透明模块管理。AppKit框架的普通面板没有任何效果。但要启用 Powerbox 来访问文件系统,权限列表应包括
com.apple.security.files.user-selected.read-write YES
Run Code Online (Sandbox Code Playgroud)
配置。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           987 次  |  
        
|   最近记录:  |