2

シートがモーダルではなく、フォーカスがまだメイン ウィンドウにある理由がわかりません。

- (IBAction) showSheet:(NSWindow*)window

{ // ユーザーがダイアログの表示を要求しました。表示します。

    if (!_clientsDialog)
        [NSBundle loadNibNamed: @"clientsDialog" owner: self];
        [NSApp beginSheet:self.clientsDialog
           modalForWindow: [[NSApp delegate]window]
            modalDelegate: self
           didEndSelector: NULL
              contextInfo: NULL];

}

4

1 に答える 1

4

次の方法は私にとってはうまくいきます:

ヘッダー ファイル:

- (IBAction)showSheet:(id)sender;

メソッドファイル:

- (void)showSheet:(id)sender {

    if (! _clientsDialog)
        [NSBundle loadNibNamed: @"clientsDialog" owner: self];

    [NSApp beginSheet: _clientsDialog
       modalForWindow: [[NSApp delegate] window]
        modalDelegate: self
        didEndSelector: NULL
            contextInfo: NULL];
}

重要:ウィンドウにタイトル バーが必要です。そうしないと、コントロールが機能しません。

ここに画像の説明を入力

于 2013-07-07T21:08:50.300 に答える