2010-11-02 72 views
3

我有兩個NSOutlineViews並排顯示它們包含相同數量的行(這是一個先決條件),我需要在用戶使用鼠標,鍵盤或滾動條滾動時同步它們,以便我看到相同的視圖部分(或行) 。如何檢測NSOutlineView的滾動?

我在可可的土地是一個新手,我無法找到如何可以完成此

回答

3

你想要得到的NSOutlineView的封閉滾動視圖的夾視圖:

NSClipView * clipView = [[outlineView enclosingScrollView] contentView]; 

...並將其-setPostsFrameChangedNotifications設置爲YES。從該視圖中監聽NSViewFrameDidChangeNotification並作出相應的響應。

注:該命名不是很清楚。 -contentView:大多數人的第一個期望是它返回正在滾動的視圖。 -contentView:方法返回滾動視圖的NSClipView,而-documentView:方法返回滾動的實際視圖。

+0

它不起作用,當我展開或摺疊視圖節點時,通知被調用,但當我在視圖內滾動時,通知不叫 – dafi 2010-11-02 14:34:42

+0

Bah。有錯,抱歉。更新。 – 2010-11-02 14:49:14

+0

這個問題與clipView無關,但使用NSViewFrameDidChangeNotification,當您嘗試在視圖內滾動*時,通知被調用* only *當您調整視圖大小*或*展開項目,但*未被調用*。謝謝 – dafi 2010-11-02 15:05:41