ビュー階層のカスタムビューを介してキー押下をキャプチャするCocoaアプリケーションがあります。keyUp
このビューはメソッドとメソッドを実装しkeyDown
、キーが押されたときに受信されます。それでも、Cocoaは、キーを押すたびにシステムエラー音/音を鳴らすことを主張します。解決策はありますか?
注:このビューをファーストレスポンダーにしようとしましたが、機能しませんでした。それはそれと関係があるかもしれません。
ビュー階層のカスタムビューを介してキー押下をキャプチャするCocoaアプリケーションがあります。keyUp
このビューはメソッドとメソッドを実装しkeyDown
、キーが押されたときに受信されます。それでも、Cocoaは、キーを押すたびにシステムエラー音/音を鳴らすことを主張します。解決策はありますか?
注:このビューをファーストレスポンダーにしようとしましたが、機能しませんでした。それはそれと関係があるかもしれません。
ビューをファーストレスポンダーにしようとして失敗した場合は、がNSView
返さNO
れる可能性がありますacceptsFirstResponder
。NSView
サブクラスをオーバーライドacceptsFirstResponder
してYESを返すことができます。
- (BOOL)acceptsFirstResponder {
return YES;
}
ビープ音が消えるはずです。NSView
または、サブクラスのオーバーライドNSResponder
のメソッドを使用してYESを返すこともできますperformKeyEquivalent:
。これにより、NSBeepsも削除されます。
- (BOOL)performKeyEquivalent:(NSEvent *)event {
return YES;
}
アップデート:
何を提案すべきかわからない。私は実際に、基本的にあなたが望むことと同じようなことをするように設計された「キーボードクリーナーヘルパー」アプリを書きました。(キーボードを掃除したいときにラップトップで使用しましたが、何百回もキーを押してファイルの名前をランダムに変更したり、エラービープ音を繰り返したりしませんでした)。
サンプルプロジェクト: http: //www.markdouma.com/developer/KeyboardCleanerHelper.zip
そのアプリを実行すると、ビープ音がまったく鳴りません(通話はコンソールに記録されます)。