[英]Manage event handling in a subclass in Swift for OSX
我正在嘗試實現NSSlider的子類,該子類應該處理修飾鍵事件。 我已經將此重寫函數放在類中:
override func flagsChanged(theEvent: NSEvent) {
if (theEvent.modifierFlags.rawValue & NSEventModifierFlags.DeviceIndependentModifierFlagsMask.rawValue) == NSEventModifierFlags.AlternateKeyMask.rawValue {
optionKeyPressed = true
Swift.print("OptionKey is pressed")
} else {
optionKeyPressed = false
}
}
還有一個初始化器:
override init(frame: NSRect) {
super.init(frame: frame)
NSEvent.addLocalMonitorForEventsMatchingMask(.FlagsChangedMask) { (theEvent) -> NSEvent? in
self.flagsChanged(theEvent)
return theEvent
}
不幸的是,當我嘗試在情節提要中使用子類時,什么也沒發生:從未調用過init函數。
所有這些事情幾乎都是新手,有一些指導很不錯! 非常感謝,
喬希
您還需要實現initWithCoder:
初始化程序,因為在情節提要中使用類時,該初始化程序稱為:
required init?(coder: NSCoder) {
super.init(coder: coder)
NSEvent.addLocalMonitorForEventsMatchingMask(.FlagsChangedMask) { (theEvent) -> NSEvent? in
self.flagsChanged(theEvent)
return theEvent
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.