Swift3 移动鼠标时未调用mouseMoved函数?

Swift3 移动鼠标时未调用mouseMoved函数?,swift3,mousemove,swift-playground,nstrackingarea,Swift3,Mousemove,Swift Playground,Nstrackingarea,我试图在SKScene中查找鼠标坐标,但是,没有调用moveMouse函数。(顺便说一句,这是在一个Swift游乐场中)我甚至编写了一个打印函数,测试该函数是否被调用,但它绝对不会打印任何内容 以下是我设置NSTrackingArea的方式: let options = [NSTrackingAreaOptions.mouseMoved, NSTrackingAreaOptions.activeInKeyWindow, NSTrackingAreaOptions.activeAlways

我试图在SKScene中查找鼠标坐标,但是,没有调用moveMouse函数。(顺便说一句,这是在一个Swift游乐场中)我甚至编写了一个打印函数,测试该函数是否被调用,但它绝对不会打印任何内容

以下是我设置NSTrackingArea的方式:

    let options = [NSTrackingAreaOptions.mouseMoved, NSTrackingAreaOptions.activeInKeyWindow, NSTrackingAreaOptions.activeAlways, NSTrackingAreaOptions.inVisibleRect, ] as NSTrackingAreaOptions
    let tracker = NSTrackingArea(rect: viewFrame, options: options, owner: self.view, userInfo: nil)
    self.view?.addTrackingArea(tracker)
这是mouseMoved函数(未被调用的函数)


没有调用mouseMoved有什么原因吗?

我用以下代码创建了一个游乐场(并且只有该代码):

然后,我通过单击工具栏中的“显示助理编辑器”按钮打开了操场时间线视图。我还打开了调试区域,以便可以看到控制台

此时,时间轴视图显示为绿色视图。我将鼠标指针移到绿色视图上,可以看到鼠标坐标在控制台中打印出来。因此,据我所知,上面的代码运行良好


你能试试你这边的代码,看看会发生什么吗?

你把你的游乐场设置成实时视图了吗?否则,您的代码将执行一次,但游乐场将不会继续监视用户事件或响应事件。只是确认一下,这就是你应该如何设置的,对吗
let scene=scene(大小:CGSize(宽度:1080,高度:1080))scene.backgroundColor=#colorLiteral(红色:0.4078431373,绿色:0.7843137255,蓝色:0.650983922,alpha:1)scene.scaleMode=.aspectFit let view=SKView(帧:NSRect(x:0,y:0,宽度:1920,高度:1080))PlaygroundPage.current.needsIndefiniteExecution=true view.presentScene(scene)PlaygroundPage.current.liveView=view
是的,应该可以。在我做了一些检查之后,我会就鼠标移动问题回复你-现在我必须出去,但会回复你。但是一个问题,如何(或者更确切地说,在哪里)您正在添加
mouseMoved
方法吗?我正在自定义的SKScene类中添加mouseMoved方法。我在SKScene类中安装了NSTracker。将其移动到播放曲目的位置!非常感谢!
override public func mouseMoved(with event: NSEvent) {

        point = event.location(in: self)
        print(point)
    }
import AppKit
import SpriteKit
import PlaygroundSupport

class Scene:SKScene {
    override public func mouseMoved(with event: NSEvent) {
        let point = event.location(in: self)
        print(point)
    }
}

let frame = CGRect(x:0, y:0, width:1920, height:1080)
let view = SKView(frame:frame)
let scene = Scene(size: CGSize(width: 1080, height: 1080))
scene.backgroundColor = #colorLiteral(red: 0.4078431373, green: 0.7843137255, blue: 0.6509803922, alpha: 1)
scene.scaleMode = .aspectFit

let options = [NSTrackingAreaOptions.mouseMoved, NSTrackingAreaOptions.activeInKeyWindow, NSTrackingAreaOptions.activeAlways, NSTrackingAreaOptions.inVisibleRect, ] as NSTrackingAreaOptions
let tracker = NSTrackingArea(rect:frame, options: options, owner:view, userInfo: nil)
view.addTrackingArea(tracker)

PlaygroundPage.current.needsIndefiniteExecution = true
view.presentScene(scene)
PlaygroundPage.current.liveView = view