2012-04-05 23 views
1

當我在Mac應用程序中使用沙盒時,我點擊菜單項「導出」,它應該使用NSOpenPanel打開一個對話框,但事實並非如此。這裏是我的代碼:Mac apps SandBox:使用NSOpenPanel有一個關於NSRemoteOpenPanel的錯誤

[playExportPanel beginSheetModalForWindow:mainWindow 
         completionHandler: ^(NSInteger result) { 
    if(result == NSFileHandlingPanelOKButton) { 
      .... 
    } 
}] 

它拋出一個異常:-[NSRemoteOpenPanel close]: unrecognized selector sent to instance。什麼是NSRemoteOpenPanel?有沒有人見過這個?

+0

我也看到了。 – JanX2 2012-05-19 07:41:13

回答

2

我剛剛在我自己的應用程序中解決了這個問題。我刪除了[sheet close];。之後我用[sheet orderOut:self];替換它。後者在你的情況下可能沒有必要。在我的代碼中,在返回之前,可能會從塊代碼中顯示錯誤表。這會導致堆疊的牀單,我不喜歡這個星座:它看起來很混亂。

你可能遷移到「-beginSheetModalForWindow:completionHandler:」形成棄用API和重複使用舊代碼。即使調用-close被移除,面板在塊返回後關閉。這可能是新API行爲的一部分,但我還沒有找到文檔中描述的內容。

+0

是的,它是正確的,我已經通過這種方式解決了這個問題。我已經刪除了[工作表關閉],那麼沒關係! 謝謝。 – 2012-07-10 06:25:05