簡體   English   中英

使用app-sandboxing的Cocoa app中的NSOpenPanel會出錯

[英]NSOpenPanel in Cocoa app with app-sandboxing gives an error

我正在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
)

正如您所提到的,您已經啟用了應用程序沙盒,這就解釋了為什么您在崩潰日志中看到了NSRemoteOpenPanel

顯然,Apple的NSRemoteOpenPanel並非源自NSOpenPanelNSSavePanelNSPanel (在setFloatingPanel方法的定義位置)。

我建議在http://bugreporter.apple.com上提交增強請求(或錯誤)

它也可能是Apple不希望沙盒應用程序具有浮動面板或窗口,這些窗口或窗口位於“正常”窗口層之外,在這種情況下,您的錯誤將很快關閉或評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM