В какао только виды участвуют в цепочке ответчиков для этого события. Поэтому вы должны переопределить какой-либо метод просмотра. Легкий способ - выяснить, какой вид является первым ответчиком для конкретного события, которое вы хотите обработать и использовать.
окно отправляет keyDown(with:)
прямо к первому ответчику, который мог бы с ним справиться или пройти до цепи ответчика. Не все представления передают события вверх. NSCollectionView не передает ключевое событие. Вместо этого он воспроизводит звук удара.
Также возможно, что ключ, который вы хотите обработать, равен Ключевой эквивалентread more here. Если это так, вы должны переопределить метод executeKeyEquivalent (with:) для получения этого типа событий. Эти события, в отличие от событий keyDown, передаются из окна во все подпункты, пока кто-то не обработает их.
Как упоминалось, метод NSCollectionView keyDown (with:) не передает ключевые события в цепочке ответчиков. Чтобы обрабатывать такие события в одном из супер-представлений, вы должны сначала перенести его в виде коллекции и отправить событие вручную, вызвав self.nextResponder? .keyDown (с: event) для таких событий, которые вы хотите обрабатывать самостоятельно.
Где находится ваш ключ: метод реализован? –
Если нужно обработать escape-ключ, рассмотрите переопределение 'cancelOperation:' в подклассе 'NSResponder'. – Andriy