File->New から NSWindowController のサブクラスを作成し、"With XIB for user interface" オプションをチェックします。だから私は3つの新しいファイルを作成します。次に、Interface Builder を使用して、ウィンドウにビューを 1 つだけ追加します。
そして、このコードを MyWindowController.m に入れます:
- (void)keyDown:(NSEvent *)theEvent{
NSLog(@"%@", theEvent);
}
- 最初のテストでは、NSButton を 1 つ追加し、プロジェクトを実行します。
- 2 番目のテストでは、1 つの WebView (NSButton を削除) を追加し、プロジェクトを実行します。
どちらのテストでも、ウィンドウは正しく表示されます。しかし、違いは次のとおりです。
- (NSButton)「a」、「b」などのキーを押すとログ出力が表示されますが、ESC キーは表示されません
- (WebView)「a」、「b」、...、および ESC キーなどのキーを押すと、ログ出力が表示されます
NSButton を他のビュー タイプに変更し、カスタム ビューもすべて最初のケースのように動作します。
私の質問は:
- 最初のケースで NSWindowController が ESC キーを押せないのはなぜですか?
- NSWindowController が最初のレスポンダーとして WebView を使用して ESC キーをキャプチャする理由。
- NSWindowController は WebView なしで ESC キーをどのようにキャプチャできますか?