2014-05-21 15 views
9

Bir mouseDown olayını yakalayan bir NSView var.Görünüm koordinasyon sisteminde [NSEvent mouseLocation] ayarlanıyor

- (void)mouseDown:(NSEvent *)theEvent { 
    NSPoint touchPoint = [NSEvent mouseLocation]; 
    //Rest of code 
} 

Ancak bu küresel ekran koordinasyon içinde fare konum olarak ClickPoint ayarlar:

kullanıyorum fare tıklaması koordinasyonunu alıyorum.

Görüntünün göreli görünüm koordinasyonundaki konumunu görmek istiyorum - Kullanıcı pencerenin sol alt köşesine tıklarsa, içerdiği pencerenin nerede olduğuna bakılmaksızın noktanın (0, 0) olmasını istiyorum. ekranda.

cevap

13

mouseLocation değil locationInWindow kullanıyor olmalısınız. locationInWindow'daki dokümanlar oradan nasıl gidileceğini gösterir:

NSPoint event_location = [theEvent locationInWindow]; 
NSPoint local_point = [self convertPoint:event_location fromView:nil]; 
İlgili konular