2010-01-14 96 views
4

我正在開發一個可可中的應用程序,它需要通過單擊NSTableview中的複選框來選擇一個項目。我需要選擇單元格而不突出顯示錶格行 是否可以這樣做。 .. 在此先感謝NSTableview disble高亮顏色

回答

18

NSTableView有一種方法稱爲setSelectionHighlightStyle:您可以發送NSTableViewSelectionHighlightStyleNone作爲一個選項,它不會顯示一個突出顯示。

所以,在awakeFromNib:或類似:

[tableView setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];

+1

這個工作對我來說太棒了。 – lukemh 2012-06-30 10:29:57

+1

或者在Interface Builder的表屬性檢查器中,將「Highlight」設置爲「None」。 – 2016-09-21 22:51:12

2

通常,只有可選的或選擇的細胞可以被跟蹤;複選框需要跟蹤才能被選中/取消選中。

但可以通過使用NSTableView的代表完成您想要的操作:tableView:shouldTrackCell:forTableColumn:row:方法可用於允許跟蹤不可選或不可選的單元格。

0

爲什麼不在相關模型中設置相關的布爾屬性?如果你正在使用綁定,表格視圖應該自動獲取更改;如果沒有,你可以告訴表視圖重新加載該行。

0

NSTableView的有方法來設置選擇HighlightStyle

添加下面一行在你tableivew方法:

func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? 
{ 
    let cell:customCell = tableView.make(withIdentifier: 
    "customCell", owner: self) as! customCell 

     tableview.selectionHighlightStyle = .none 
} 
+0

在提供自己的答案之前,尤其是對一個有點老的問題,請閱讀現有的答案。如果你的回答與其他人不存在重大差異,那麼應該避免做出新的回答。相反,如果您有其他數據值得分享(例如快速詳細信息),請編輯已存在的答案,並且與您的答案最相似。 – mah 2018-02-11 16:51:23