Определить, когда клавиша удаления нажата на элементе управления

Как я могу подкласс NSControl объект (такой как NSImageView) чтобы обнаружить нажатие клавиши удаления? В частности, я хочу очистить изображение от NSImageView, но есть, вероятно, более широкие приложения.

2 ответа

Подкласс NSControl и переопределить keyDown функция. Используйте NSEvent.charactersIgnoringModifiers для проверки значения Юникода в NSDeleteCharacter,

    override func keyDown(theEvent: NSEvent) {
        //From Apple sample code: https://developer.apple.com/library/ios/samplecode/Lister/Listings/Swift_ListerOSX_ListViewController_swift.html
        if theEvent.charactersIgnoringModifiers == String(Character(UnicodeScalar(NSDeleteCharacter))) {
            //Take action. 

        }
     }

Это должно работать, чтобы просто реализовать -delete: метод действия, который отправляет пункт "Удалить" меню "Правка" в цепочку респондента. Таким образом, он работает не только для клавиши Delete, но и для всех других способов вызова этого пункта меню (мышь, фокусирование на меню и навигация с помощью клавиш со стрелками, технологии доступности и т. Д.).

По факту, NSImageView уже реализует -delete:, так ты уверен, что должен что-то делать?

Другие вопросы по тегам