2017-09-05 6 views
1

私は3つのNSTableViewsと1つのNSCollectionViewを持つウィンドウを持っています。 collectionviewは画像を表示します。私は画像の1つを選択し、キーボードの削除キーを使ってそれを削除することができますが、私は最初のレスポンダになるためにコレクションビューを取得することはできません。私はtableviewsのいずれかを選択し、キーボード入力を受け入れるためにkeyDownをオーバーライドすることができますが、それはcollectionviewでは動作しません。私はこれをmakeFirstResponder(_ :)を使ってコレクションビューに集中させましたが、そのアプリケーションではウィンドウは1つしか表示されませんでした。私が間違ってやっていることに関する考えは?NSCollectionViewはキーイベントを受け付けません

答えて

0

コレクションビューで画像を選択したり、キーボードの矢印キーを使用してコレクションビュー内をナビゲートすることができれば、通常はコレクションビューがfirstResponderであることを意味します。

選択を有効にして、コレクションビューが有効になっているかどうかを確認してください。

また、削除キーはキーと同等です。 read more hereです。このようなイベントを受信するには、performKeyEquivalent(with:)メソッドをオーバーライドする必要があります。

また、NSCollectionView keyDown(with:)メソッドはレスポンダチェーンの上位にキーイベントを渡しません。そのようなイベントをスーパービューで処理するには、自分で処理したいイベントに対してself.nextResponder?.keyDown(with: event)を呼び出して、コレクションビューでオーバーライドする必要があります。

関連する問題