NSTableView のセルの色を変更するにはどうすればよいですか?
9716 次
4 に答える
14
NSTableViewDelegate
for で、次のNSTableView
メソッドを実装します。
- (void)tableView:(NSTableView *)tableView
willDisplayCell:(id)cell
forTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)row
はNSTableView
、各セルを表示する前にデリゲートでこれを呼び出して、その外観に影響を与えることができるようにします。呼び出しを変更するセルに対して、NSTextFieldCells を使用していると仮定します。
[cell setBackgroundColor:...];
または、テキストの色を変更する場合:
[cell setTextColor:...];
列に異なる外観を持たせたい場合、またはすべての列が NSTextFieldCells ではない場合は、列を[tableColumn identifier]
識別するために使用します。表の列を選択して、Interface Builder で識別子を設定できます。
于 2010-05-22T01:29:50.960 に答える
2
// テスト済み - Swift 3 ソリューション...単一の列のセル テキストの色を変更するため。テーブルビューのすべての列に一意の識別子があります
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
let myCell:NSTableCellView = tableView.make(withIdentifier: (tableColumn?.identifier)!, owner: self) as! NSTableCellView
if tableColumn?.identifier == "MyColumn" {
let results = arrayController.arrangedObjects as! [ProjectData]
let result = results[row]
if result.ebit < 0.0 {
myCell.textField?.textColor = NSColor.red
} else {
myCell.textField?.textColor = NSColor.black
}
}
return myCell
}
于 2017-03-18T22:03:20.413 に答える
0
そのためのカスタムNSView
、またはNSTableView
の-setBackgroundColor:
メソッドを使用してみてください。
于 2010-05-21T02:05:44.177 に答える