ココアでは、このイベントのレスポンダーチェーンにのみ参加します。だから、いくつかのビューメソッドをオーバーライドする必要があります。簡単な方法は、特定のイベントを処理して使用するためにどのビューが最初のレスポンダーであるかを調べることです。
ウィンドウは、レスポンダチェーンを処理するか、レスポンダチェーンまで渡すことができる最初のレスポンダにkeyDown(with:)
strightを送信します。すべてのビューがイベントを上回るわけではありません。 NSCollectionViewはキーイベントを渡しません。代わりにバンプ音が鳴ります。
対応するキーは、キー相当のread more hereである可能性があります。その場合は、代わりにこのタイプのイベントを受け取るためにperformKeyEquivalent(with:)メソッドをオーバーライドする必要があります。このイベントは、誰かがそれらを処理するまで、ウィンドウからすべてのサブビューに渡されたkeyDownイベントとは異なります。
NSCollectionView keyDown(with:)メソッドは、キーイベントをレスポンダチェーンに渡すことはしません。そのようなイベントをスーパービューの1つで処理するには、コレクションビューで最初にオーバーライドし、自分で処理したいイベントに対してself.nextResponder?.keyDown(with:event)を呼び出すことによって手動でイベントを送信する必要があります。
keyDown:メソッドはどこに実装されていますか? –
エスケープキーを処理する必要がある場合は、 'NSResponder'サブクラスで' cancelOperation: 'をオーバーライドすることを検討してください。 – Andriy