3

ウィザードのような構造を持つココアアプリケーションを1つ作成しています。

すべてのダイアログはNSViewControllerのサブクラスです。現在、keyDownやkeyUpなどのキーボードイベントを取得できません。

この問題を解決するのを手伝ってください....

前もって感謝します....

4

3 に答える 3

4

keyDown:およびkeyUp:メソッドをオーバーライドします。

-(void)keyUp:(NSEvent*)event
-(void)keyDown:(NSEvent*)event

- (BOOL)acceptsFirstResponder {
    return YES;
}

サブクラスでは、Cocoaイベント処理ガイドNSViewController を参照する必要があります。

于 2011-11-16T14:14:58.500 に答える
1

単純にエスケープ用のイベントを取得しようとしている場合は、代わりにこれを使用してください。

override var acceptsFirstResponder: Bool {
    return true
}

override func cancelOperation(_ sender: Any?) {
    // The user pressed escape
}
于 2017-05-30T18:17:07.303 に答える
0

Setting window to "Auto Recalculates View Loop" in Inteface Builder has worked for me.

于 2012-01-13T10:20:48.490 に答える