nstextfieldのサブクラスを作成し、keydownイベントをオーバーライドしましたが、コードが機能しないため、keyupイベントをオーバーライドしてコードが完全に機能します。 私のKeyDownイベントコード(動作しない):NSTextfieldのkeydowneventをオーバーライド
-(void)keyDown:(NSEvent *)event {
NSLog(@"Key released: %hi", [event keyCode]);
if ([event keyCode]==125){
[[self window] selectKeyViewFollowingView:self];
}
if ([event keyCode]==126){
[[self window] selectKeyViewPrecedingView:self];
}
}
私からkeyupコード(それが動作する):
-(void)keyUp:(NSEvent*)event
{if ([event keyCode]==125){
[[self window] selectKeyViewFollowingView:self];
}
if ([event keyCode]==126){
[[self window] selectKeyViewPrecedingView:self];
}
if ([event keyCode]==36){
[[self window] selectKeyViewFollowingView:self];
}
}
私のKeyDownイベントコードに問題がある場合、私は表示されません。任意の提案が受け入れられる
EDIT: NSTextFieldの代わりにNSTextViewをサブクラス化する必要があることを読んだ。
「機能しない」と記載してください。 –
これはNSLogを実行しますか?それはまったく呼ばれていますか?これらは、1つが動作し、1つは動作しない同じ正確なクラスの同じ正確なインスタンスですか? –
nslogを実行しません –