如何子类化一个NSControl
对象(例如 a NSImageView
)以检测删除键的按下?具体来说,我想从 a 中清除图像NSImageView
,但可能有更广泛的应用。
问问题
1745 次
2 回答
6
子类化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.
}
}
于 2016-02-21T17:16:12.067 回答
2
它应该只实现-delete:
action 方法,这是 Edit 菜单的 Delete 项发送到响应者链的内容。这样,它不仅适用于 Delete 键,还适用于调用该菜单项的所有其他方式(鼠标、将焦点放在菜单上以及通过箭头键导航、可访问性技术等)。
事实上,NSImageView
已经实现了-delete:
,所以你确定你必须做些什么吗?
于 2016-02-21T21:17:46.677 回答