Вы можете настроить объект NSTrackingArea
для отслеживания движения мыши, а также когда курсор входит или выходит из вида. Чтобы создать объект NSTrackingArea
, вы указываете область представления, в которой вы хотите отслеживать события мыши, владелец, который получит сообщения о событиях мыши, и когда произойдет отслеживание (например, в окне ключа). Ниже приведен пример того, как добавить зону отслеживания в представление. Добавьте в свой SKScene
подкласс, например GameScene.swift.
Swift 3 и 4
override func didMove(to view: SKView) {
// Create a tracking area object with self as the owner (i.e., the recipient of mouse-tracking messages
let trackingArea = NSTrackingArea(rect: view.frame, options: [.activeInKeyWindow, .mouseMoved], owner: self, userInfo: nil)
// Add the tracking area to the view
view.addTrackingArea(trackingArea)
}
// This method will be called when the mouse moves in the view
override func mouseMoved(with theEvent: NSEvent) {
let location = theEvent.location(in: self)
print(location)
}
Swift 2
override func didMoveToView(view: SKView) {
// Create a tracking area object with self as the owner (i.e., the recipient of mouse-tracking messages
let trackingArea = NSTrackingArea(rect: view.frame, options: NSTrackingAreaOptions.ActiveInKeyWindow | NSTrackingAreaOptions.MouseMoved, owner: self, userInfo: nil)
// Add the tracking area to the view
view.addTrackingArea(trackingArea)
}
// This method will be called when the mouse moves in the view
override func mouseMoved(theEvent: NSEvent) {
let location = theEvent.locationInNode(self)
println(location)
}