【发布时间】:2018-10-25 16:43:16
【问题描述】:
我有一个 Mac SpriteKit / swift 应用程序(一个游戏),我需要将光标保持在一个窗口内。或者至少在它离开游戏窗口时给出一些警告。
我已经设置了一个跟踪区域,并且正在使用鼠标移动游戏桨。但是当光标移出窗口时,桨叶停止工作。
let options = [ .mouseMoved,
.activeAlways,
.mouseEnteredAndExited] as NSTrackingArea.Options
let tracker = NSTrackingArea(rect:frame, options: options, owner:view, userInfo: nil)
view.addTrackingArea(tracker)
鼠标进入和退出功能似乎没有触发
override func mouseExited(with event: NSEvent) {
// NSCursor.unhide()
print("_____________________EXIT")
//Never fires
}
override func mouseEntered(with event: NSEvent) {
// NSCursor.hide()
print("_____________________ENTER")
// never fires
}
有什么想法吗?谢谢
【问题讨论】:
-
如果此代码在 GameScene.swift(或另一个 SKScene 子类)中,
owner参数应该是self而不是view。 -
谢谢!!成功了。
标签: swift macos sprite-kit