初めて開いたときにウィンドウに接続されていない状態で開くシートに問題があります。それを却下した後、シートは正常に機能します。
これが私がシートを始めているコードです:
- (IBAction)addButtonAction:(id)sender {
assert ([editorController window]);
assert (window);
[NSApp beginSheet: [editorController window]
modalForWindow: window
modalDelegate: editorController
didEndSelector: @selector(didEndSheet:returnCode:contextInfo:)
contextInfo: nil];
}
変数「window」および「editorController」は、アプリケーションデリゲートヘッダーファイルで@privateとして初期化されます。
'didEndSelector'は'editorController'コードファイルで定義され、ウィンドウが閉じられたときに呼び出されます。
'didEndSelector'のコードは次のとおりです。
- (void)didEndSheet:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
{
[sheet orderOut:self];
}
ウィンドウは、次のようなセレクター'cancelButtonAction'の呼び出しでキャンセルされます。
- (IBAction)cancelButtonAction:(id)sender {
[NSApp endSheet:self.window];
}
どんな考えでもいただければ幸いです。