2
我有一個自定義視圖類,它接收鼠標事件的正確的座標。我沒有得到正確的mouseDown或mouseUp事件座標。無論我在視圖內點擊哪裏,我都會得到相同的錯誤座標。mouseDown事件沒有顯示點擊
這是我在我的自定義的NSView類
- (void)mouseDown:(NSEvent *)theEvent
{
NSPoint coordinateInBaseWindow = theEvent.locationInWindow;
NSPoint coordinateInView = [self convertPoint:coordinateInBaseWindow fromView:nil];
NSLog(@"left mouse down (x,y) =(%f,%f)", coordinateInView.x, coordinateInView.y);
}
功能我有mouseUp
事件的類似處理。
現在輸出總是
左鼠標向下(X,Y)=(0.000000,-1.996910)
左鼠標向上(X,Y)=(0.000000,0.000000)
無論我點擊視圖中,鼠標左鍵的協調下總是(0.000000,-1.996910)和鼠標左鍵,則始終(0.000000,0.000000)。
- 我在做什麼錯?爲什麼我無法獲得鼠標點擊事件的正確座標?
- 鼠標按下和MouseUp共同打造一個點擊。 mouseDown和mouseUp的座標不應該相等嗎?爲什麼他們在這種情況下不同?
編輯1:
由於omz指出,我應該用convertPoint:fromView:
但是這也沒有解決問題。我仍然獲得相同的座標。
編輯2: 我在NSLog格式說明符不正確,這給我完全錯誤的結果。
我有固定的代碼,但我仍然得到同樣的結果。 '(0.000000,-1.996910)'和'(0.000000,0.000000)'。 –
你的(編輯的)代碼在這裏工作得很好。你的代碼中可能會影響結果的其他任何內容? – omz