2010-08-11 19 views
1

我正在尋找在我的NSView子類中處理「鼠標按住一個位置」事件的正確方法。在Cocoa中,當鼠標被按下(但沒有移動)時,我的NSView如何接收事件?

我對Cocoa的mouseDragged:事件很熟悉,但只有當鼠標移動時纔會觸發它。如果鼠標停留在相同位置,則不會觸發拖動事件。同樣,mouseDown:只在第一次按下按鈕時觸發。只要鼠標按在特定區域,我的視圖就需要執行操作。

做這種事情的正確方法是什麼?

回答

3

您是否可以在收到mouseDown:事件時開始執行操作,並在您收到mouseUp:(或mouseDragged:,如果您還想停止時)停止操作?

+0

+1這肯定會奏效。我想我只是感到驚訝,沒有一個內置的事件或方法來處理這種事情。我期待着像'mouseStillDown:' – 2010-08-11 23:51:52

+0

這樣的事件對不起,很長時間了,謝謝你的回答。這最終成爲我使用的解決方案。 – 2010-11-10 17:25:40

2

我不確定你想要完成什麼,但是如果你想在mouseDown:之後的設定時間間隔內重複一個動作,你可以在mouseDown:方法中設置一個重複的NSTimer,該方法儘快取消因爲有一個mouseDragged:mouseUp:事件。

相關問題