8
我實現在Cocoa應用程序拖放和我使用從NSDraggingSource協議下面的方法:轉換NSPoint在屏幕座標窗口座標
- (void)draggedImage:(NSImage *)draggedImage movedTo:(NSPoint)screenPoint{
的NSPoint在屏幕座標,並給出我需要它在窗口或視圖座標中。如果用NSEvent調用該方法,我可以執行以下操作:
-(void)mouseDown:(NSEvent *)pTheEvent {
NSPoint tvarMouseInWindow = [pTheEvent locationInWindow];
NSPoint tvarMouseInView = [self convertPoint:tvarMouseInWindow fromView:nil]; }
但是我不知道如何使用NSPoint執行此操作。提前致謝!
完美...非常感謝! – Dillon 2010-10-25 10:58:57
'(NSPoint)convertScreenToBase:(NSPoint)aPoint'現在不贊成使用'(NSRect)convertRectFromScreen:(NSRect)aRect'。顯然,可以將點轉換爲矩形,使用此方法,然後轉換回來,但是這真的是現在的首選成語嗎?有一個更好的方法。 – Aeonaut 2011-08-15 22:02:01
@Omphalos:似乎沒有更好的方法(或者我完全忽略它),所以我最終在NSWindow的一個類中編寫了一個新方法,它構建了一個NSRect,將其轉換並返回轉換的矩形。它有助於恢復'-convertScreenToBase:'的行爲,並使您有機會更加符合其他類似的方法;我打電話給我'-convertPointFromScreen:'。 – Tim 2012-10-15 17:31:40