0

初めて開いたときにウィンドウに接続されていない状態で開くシートに問題があります。それを却下した後、シートは正常に機能します。

これが私がシートを始めているコードです:

- (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];
}

どんな考えでもいただければ幸いです。

4

1 に答える 1

1

xib ファイルの NSWindow の「起動時に表示」オプションがオンになっていないことを確認してください。

于 2012-04-02T00:24:50.733 に答える