Firemonkey应用程序中的TOpenDialog似乎存在问题,该应用程序是为Mac Appstore沙箱化的.我使用XE3,但它也存在于XE2中.
我实际上在这里找到了QC报告,但它仍然没有得到解决:
我实际上在这里找到了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来自不同的类,与没有沙盒的类相比.
我想这就是问题的原因.
任何想法将不胜感激.我们无法真正发布一个必须使用没有打开/保存对话框的文件的应用程序:)
顺便说一句,我尝试了项目选项中的权利的几种组合,但它们没有效果.