4

File->New から NSWindowController のサブクラスを作成し、"With XIB for user interface" オプションをチェックします。だから私は3つの新しいファイルを作成します。次に、Interface Builder を使用して、ウィンドウにビューを 1 つだけ追加します。

そして、このコードを MyWindowController.m に入れます:

- (void)keyDown:(NSEvent *)theEvent{
    NSLog(@"%@", theEvent);
}
  1. 最初のテストでは、NSButton を 1 つ追加し、プロジェクトを実行します。
  2. 2 番目のテストでは、1 つの WebView (NSButton を削除) を追加し、プロジェクトを実行します。

どちらのテストでも、ウィンドウは正しく表示されます。しかし、違いは次のとおりです。

  1. (NSButton)「a」、「b」などのキーを押すとログ出力が表示されますが、ESC キーは表示されません
  2. (WebView)「a」、「b」、...、および ESC キーなどのキーを押すと、ログ出力が表示されます

NSButton を他のビュー タイプに変更し、カスタム ビューもすべて最初のケースのように動作します。

私の質問は:

  1. 最初のケースで NSWindowController が ESC キーを押せないのはなぜですか?
  2. NSWindowController が最初のレスポンダーとして WebView を使用して ESC キーをキャプチャする理由。
  3. NSWindowController は WebView なしで ESC キーをどのようにキャプチャできますか?
4

3 に答える 3

0

さて、私はイベント モニターを使用して ESC キーの押下をキャプチャします。詳細については、http ://www.ideawu.com/blog/post/54.html を参照してください。

しかし、まだ WevView テストを取得していません。

于 2013-04-06T09:16:42.950 に答える