Я только что добавил обработчик KeyDown в пользовательский NSView в одном из моих тестовых приложений, и клавиша ESC прекрасно работает с KeyDown.
Кажется, что-то связано с тем, как вы звоните в KeyDown? Возможно, фокус установлен неправильно.
В любом случае, вы можете использовать cancelOperation:
в своем собственном NSView.
Вот документация для [NSResponder cancelOperation:]
. Это также отвечает клавише Escape и стандартному Macintosh Command +. комбинация клавиш.
Также ознакомьтесь с разделом Обработка ключевых событий в Руководстве по обработке событий Cocoa , где я искал ответы для вас. Надеюсь, это поможет!