2010-11-18 76 views
6

我在想如何擺脫Cocoa在NSTableView/NSOutlineView中右鍵單擊時繪製的藍色輪廓。NSTableView:右鍵單擊行上的藍色輪廓

NSTableView Outline http://tobidobi.com/nstableview_outline.png

它似乎並不成爲一個經典的「亮點」,也不是「聚焦環」如果我沒有記錯的話 - 那麼,是什麼,其實?

我目前正在繪製自定義NSCells完全自己 - 但我想不出我自己如何可以
*得出這樣的輪廓,也或
*擺脫它,或
*至少改變顏色

任何提示都非常歡迎!謝謝!

回答

12

不幸的是,我不知道有任何記錄的方式來做到這一點,短缺寫自己的表視圖替換。

的方法重寫爲:

- (void)drawContextMenuHighlightForRow:(NSInteger)row; 

請把與蘋果的增強請求,所以你將不必依靠無證方法做你將來想要什麼。它看起來像另外兩個表格視圖突出顯示方法是在10.6中定製的,但這不是。我一直認爲它看起來有點笨拙,但有必要指出菜單所引用的行(不一定與突出顯示的行相同)。

+0

這奏效了!謝謝你,尼古拉斯! – Tobidobi 2010-11-19 08:25:54

+0

類型參數錯誤!它不適用於64位。 – 2014-01-10 21:36:31

+0

謝謝,我沒有在那裏做64位可可。 – 2014-01-10 22:46:09

1

我NSTableView的* mainTableView不是子類,所以我擺脫它的上下文菜單打開之前:

- (void)menuWillOpen:(NSMenu *)menu{ 
    NSInteger rightClicked = [mainTableView clickedRow]; 
    [mainTableView selectRowIndexes:[NSIndexSet indexSetWithIndex:rightClicked] byExtendingSelection:NO]; 
    [mainTableView deselectRow: rightClicked]; 
    [mainTableView reloadData]; 
    { 
+0

reloadData是不必要的,但這是要走的路。 – 2017-08-07 12:38:12