2009-01-21 135 views
1

我在使用NSTableView創建一個鼠標懸停功能時遇到問題。這個想法是(如果在prefs中選擇該功能)將鼠標指針放在NSTabelView的特定行上方將顯示一個小的彈出窗口,其中包含有關該特定行中條目的附加信息。效果不應該是立即的(例如,在滾動時按住一個按鈕),但會延遲幾秒鐘。在NSTableView中的鼠標懸停功能

到目前爲止,我已經使用tooltip委託方法實現了此功能,但是這不允許定製窗口,並且如果需要顯示多於1-3行的信息,則不能很好地工作(佈局明智) 。

在Hillegass的書中,建議使用mouseEntered/mouseExited方法進行翻轉,但據我所知,這可以用於窗口的預定義區域,而不是表格視圖中的行。

有沒有人有任何建議?

格雷戈爾Tomasevic, 瑞典

回答

1

你是在正確的軌道上-mouseEntered:和-mouseExited :.

查找到的NSView的-addTrackingRect:所有者:用戶數據:assumeInside:和-removeTrackingRect:方法。您可以設置您的tableView爲每當tableView的內容發生變化時爲其創建的每一行創建trackingRects,或者在調用整個tableView時設置/更新一個跟蹤區域。