3

ビュー階層のカスタムビューを介してキー押下をキャプチャするCocoaアプリケーションがあります。keyUpこのビューはメソッドとメソッドを実装しkeyDown、キーが押されたときに受信されます。それでも、Cocoaは、キーを押すたびにシステムエラー音/音を鳴らすことを主張します。解決策はありますか?

注:このビューをファーストレスポンダーにしようとしましたが、機能しませんでした。それはそれと関係があるかもしれません。

4

1 に答える 1

7

ビューをファーストレスポンダーにしようとして失敗した場合は、がNSView返さNOれる可能性がありますacceptsFirstResponderNSViewサブクラスをオーバーライドacceptsFirstResponderしてYESを返すことができます。

- (BOOL)acceptsFirstResponder {
    return YES;
}

ビープ音が消えるはずです。NSViewまたは、サブクラスのオーバーライドNSResponderのメソッドを使用してYESを返すこともできますperformKeyEquivalent:。これにより、NSBeepsも削除されます。

- (BOOL)performKeyEquivalent:(NSEvent *)event {
    return YES;
}

アップデート:

何を提案すべきかわからない。私は実際に、基本的にあなたが望むことと同じようなことをするように設計された「キーボードクリーナーヘルパー」アプリを書きました。(キーボードを掃除したいときにラップトップで使用しましたが、何百回もキーを押してファイルの名前をランダムに変更したり、エラービープ音を繰り返したりしませんでした)。

サンプルプロジェクト: http: //www.markdouma.com/developer/KeyboardCleanerHelper.zip

そのアプリを実行すると、ビープ音がまったく鳴りません(通話はコンソールに記録されます)。

于 2012-11-22T21:27:57.837 に答える