我正在我的Cocoa应用程序中做一个简单的文件打开面板。我启用了授权和应用程序沙箱,下面的代码现在在setFloatingPanel上显示了一个错误。找不到原因?
NSArray* fileTypes = [[NSArray alloc] initWithObjects:@"png", @"PNG", nil];
NSOpenPanel *panel;
panel = [NSOpenPanel openPanel];
[panel setTitle:@"Select Photo"];
[panel setFloatingPanel:YES];导致以下错误
2012-02-14 11:43:45.831 MyApp[451:707] -[NSRemoteOpenPanel setFloatingPanel:]: unrecognized selector sent to instance 0x400886ea0
2012-02-14 11:43:45.832 MyApp[451:707] -[NSRemoteOpenPanel setFloatingPanel:]: unrecognized selector sent to instance 0x400886ea0
2012-02-14 11:43:45.837 MyApp[451:707] (
0 CoreFoundation 0x00007fff83b18286 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff8b7f0d5e objc_exception_throw + 43
2 CoreFoundation 0x00007fff83ba44ce -[NSObject doesNotRecognizeSelector:] + 190
3 CoreFoundation 0x00007fff83b05133 ___forwarding___ + 371
4 CoreFoundation 0x00007fff83b04f48 _CF_forwarding_prep_0 + 232
5 MyApp 0x0000000100019f77 openFiles + 519
6 MyApp 0x0000000100012b19 -[MyController addImageButtonClicked:] + 25
7 CoreFoundation 0x00007fff83b07a1d -[NSObject performSelector:withObject:] + 61
8 AppKit 0x00007fff878d9710 -[NSApplication sendAction:to:from:] + 139
9 AppKit 0x00007fff878d9642 -[NSControl sendAction:to:] + 88
10 AppKit 0x00007fff878d956d -[NSCell _sendActionFrom:] + 137
11 AppKit 0x00007fff878d8a30 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 2014
12 AppKit 0x00007fff879588e0 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 489
13 AppKit 0x00007fff878d763a -[NSControl mouseDown:] + 786
14 AppKit 0x00007fff878a20e0 -[NSWindow sendEvent:] + 6306
15 AppKit 0x00007fff8783a68f -[NSApplication sendEvent:] + 5593
16 AppKit 0x00007fff877d0682 -[NSApplication run] + 555
17 AppKit 0x00007fff87a4f80c NSApplicationMain + 867
18 MyApp 0x0000000100001f4c main + 44
19 MyApp 0x0000000100001f14 start + 52
20 ??? 0x0000000000000003 0x0 + 3
)发布于 2012-02-14 14:53:32
正如你提到的,你已经启用了应用程序沙箱,这就解释了为什么你会在崩溃日志中看到NSRemoteOpenPanel。
显然,苹果的NSRemoteOpenPanel并不是从NSOpenPanel、NSSavePanel或NSPanel (这就是定义setFloatingPanel方法的地方)衍生出来的。
我建议在http://bugreporter.apple.com上提交一个增强请求(或bug)
这也可能是苹果不希望沙箱应用程序有浮动面板或窗口存在于“正常”窗口层之外,在这种情况下,你的bug将很快被关闭或评论。
https://stackoverflow.com/questions/9272599
复制相似问题