2016-05-16 8 views
0

Ich mache eine Cocoa-App für OS X mit Swift. Die App soll sehr einfach sein: Im Grunde zeigt sie ein Bild an, dann lauscht sie auf Mausklicks in diesem Bild und gibt die 2D-Mauskoordinaten basierend auf dem Ursprung des Bildes zurück (nicht die absoluten Mauskoordinaten). Ich bin mir nicht sicher, ob ich das gut beschrieben habe, aber zum Beispiel, sobald es ein Mausklick-Ereignis registriert, sollte es mir sagen, dass der Mausklick 23 Pixel nach rechts und 57 Pixel nach unten vom 0,0 Punkt des Bildes erfolgte (oder was auch immer die Einheiten sein würden).Swift - Holen Sie sich Mausklick-Koordinaten in einem UIElement

Bisher habe ich das, aber alles, was ich habe in der Lage zu tun ist, bekommen es die absolute Maus zurückzukehren Koordinaten:

import Cocoa 

class ViewController: NSViewController { 

    @IBOutlet var ImageButton: NSButton! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let fileName = "myTestImage.jpg" 
     let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first! + "/TrainingSet/" + fileName 
     //"/Users/dan/Documents/myTestImage.jpg" 
     let myImage = NSImage(contentsOfFile: path) 
     ImageButton.image = myImage 

    } 

    override var representedObject: AnyObject? { 
     didSet { 
     // Update the view, if already loaded. 
     } 
    } 

    @IBAction func ImageButtonClicked(sender: NSButton) { 

     //let x = sender 
     //let coords = x.frame 

     let mouseLocation = NSEvent.mouseLocation(); 
     print("Mouse Location X,Y = \(mouseLocation)") 
     print("Mouse Location X = \(mouseLocation.x)") 
     print("Mouse Location Y = \(mouseLocation.y)") 
    } 

} 

Wie würde ich mich über die Informationen bekommen die ich brauche?

+1

Haben Sie versucht, sender.superview.convertPoint (mouseLocation, toview: )? – xhamr

Antwort

1

Was

sender.convertPoint(mouseLocation, fromView:nil) 
Verwandte Themen