gpt4 book ai didi

swift - 从 NSEvent 用户数据中读取字典

转载 作者:可可西里 更新时间:2023-11-01 01:00:41 25 4
gpt4 key购买 nike

我创建了一个 NSTrackingArea 并在 userInfo 参数中传递了一个字典。

let trackingData = ["section": 1, "sectionRow": 12, "done": false]
let trackingArea = NSTrackingArea(
rect: cellView.bounds,
options: [NSTrackingAreaOptions.MouseEnteredAndExited, NSTrackingAreaOptions.ActiveAlways],
owner: self,
userInfo: trackingData as? [String : AnyObject])
cellView.addTrackingArea(trackingArea)

这里成功接收到这个事件;

override func mouseEntered(event: NSEvent) {
print("Mouse Entered \(event.userData)")
}

如何从 userData 中读取 section 等的值?

最佳答案

使用你的语法

if let userData = event.trackingArea?.userInfo as? [String : AnyObject] {
let section = userData["section"] as! Int
}

但是,如果您将 done 键作为 Int 传递,其值为 01 而不是 Bool,您不需要转换字典的值,因为它是不同的 [String:Int]

let trackingArea = NSTrackingArea(rect: ... , userInfo: trackingData)

if let userData = event.trackingArea?.userInfo as? [String : Int] {
let section = event.userData["section"]!
}

如果有更多事件要接收和跟踪,可选绑定(bind)是为了安全起见。

关于swift - 从 NSEvent 用户数据中读取字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34769481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com