Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 无法理解NSRemoteOpenPanel与沙盒应用程序之间的差异_Macos_Cocoa_Sandbox_Codesign_Nsopenpanel - Fatal编程技术网

Macos 无法理解NSRemoteOpenPanel与沙盒应用程序之间的差异

Macos 无法理解NSRemoteOpenPanel与沙盒应用程序之间的差异,macos,cocoa,sandbox,codesign,nsopenpanel,Macos,Cocoa,Sandbox,Codesign,Nsopenpanel,我目前正在尝试对我的应用程序进行沙箱处理,我在NSOpenPanel中遇到了一些奇怪的问题。当我尝试显示NSOpenPanel时,当前出现以下错误: Error: Objective-C runtime exception: -[NSRemoteOpenPanel orderFront:]: unrecognized selector sent to instance 0x16a1630 我读过一些其他文章,其中解释了当您启用沙箱时,操作系统将使用NSRemoteOpenPanel而不是N

我目前正在尝试对我的应用程序进行沙箱处理,我在NSOpenPanel中遇到了一些奇怪的问题。当我尝试显示NSOpenPanel时,当前出现以下错误:

Error:  Objective-C runtime exception: 
-[NSRemoteOpenPanel orderFront:]: unrecognized selector sent to instance 0x16a1630
我读过一些其他文章,其中解释了当您启用沙箱时,操作系统将使用NSRemoteOpenPanel而不是NSOpenPanel,并且此类可能不会直接从NSOpenPanel继承,也可能不会实现其所有方法。下面是一篇关于这个的帖子:


现在,这一切都很好,但我想知道人们如何知道哪些方法不能用于沙盒的NSOpenPanel。似乎没有关于NSRemoteOpenPanel的公开文档

你可以依靠一些基本的东西来解决面板的意图(获取文件/目录、指定过滤器等)。最具体地说,您只能使用NSSavePanel和NSOpenPanel中定义的方法。你不应该对基本窗口功能进行编码,因为你的应用程序将无法控制窗口

从苹果的文档中:

NSOpenPanel或NSSavePanel 对象通过应用程序沙盒继承较少的方法。如果您试图发送 发送给NSOpenPanel或NSSavePanel对象的消息,该方法为 在NSPanel、NSWindow或NSResponder类中定义的系统 引发了一个异常。Xcode编译器不会发出警告或警告 警告您此运行时行为时出错


如果直接调用
openFront
将其显示为面板,请改用NSSavePanel的
beginWithCompletionHandler:

或者,如果您想在应用程序中对其进行阻止,请使用
runModal