Определить, когда клавиша удаления нажата на элементе управления
Как я могу подкласс 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:
, так ты уверен, что должен что-то делать?