2013-03-15 46 views
0

我正在更新一些舊的代碼後10.6。beginSheetForDirectory beginSheetModalForWindow

該代碼包含一個保存時間方法,其中包含大約60行代碼,並從大約1/2個地方調用。代碼使用了beginSheetForDirectory,從10.7開始不再受支持。

我很困惑如何將以前的基於@ selector的解決方案轉換爲新的^(NSInteger)表單。我可以找到的所有示例都使用內聯塊,我很困惑如何使這個調用成爲一個單獨的方法。

的保存方法具有這樣的簽名,並且X是不內部使用:

- (void)savePanelDidEnd:(NSOpenPanel *)sheet 
     returnCode:(int)returnCode 
     contextInfo:(void *)x 

回答

0

在另一個線程發現這一點。竅門是調用beginSheetForDirectory沒有返回處理程序,然後立即調用runModal。當runModal返回時,正常處理對話框。

相關問題