0

10.6 以降の古いコードを更新しています。

このコードには、約 60 行のコードが含まれる save-time メソッドが含まれており、約 1/2 ダースの場所から呼び出されます。コードは beginSheetForDirectory を使用していましたが、これは 10.7 以降サポートされていません。

以前の @selector ベースのソリューションを新しい ^(NSInteger) フォームに変換する方法が非常に混乱しています。私が見つけることができるすべての例はインラインブロックを使用しており、その呼び出しを別のメソッドにする方法がわかりません。

save メソッドには次の sig があり、x は内部では使用されません。

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

1 に答える 1

0

これは別のスレッドで見つけました。トリックは、リターン ハンドラなしで beginSheetForDirectory を呼び出し、すぐに runModal を呼び出すことです。runModal が戻ったら、通常どおりダイアログを処理します。

于 2013-03-15T17:17:22.057 に答える