【发布时间】:2021-02-16 10:45:40
【问题描述】:
我试图让 NSEvent 停止监听本地事件。有没有办法在创建事件后访问它?(这是我在removeEvent中尝试失败的方法)
override func viewDidLoad() {
super.viewDidLoad()
NSEvent.addLocalMonitorForEvents(matching: .keyDown, handler: sayHello(event:))
}
func sayHello(event: NSEvent) -> NSEvent {
print("Welcome")
return event
}
@IBAction func removeEvent(_ sender: NSButton) {
let event = NSEvent.addLocalMonitorForEvents(matching: .keyDown, handler: sayHello(event:))
NSEvent.removeMonitor(event)
}
【问题讨论】:
-
您要删除
removeEvent或viewDidLoad中添加的事件处理程序吗? -
我正在尝试删除在
viewDidLoad中添加的事件。在removeEvent中初始化的事件是试图访问它。 -
addLocalMonitorForEvents创建一个新的事件处理程序。将viewDidLoad中创建的事件处理程序存储在一个属性中。 -
你知道怎么做吗?
标签: swift macos events nsevent