11

NSTableView のセルの色を変更するにはどうすればよいですか?

4

4 に答える 4

14

NSTableViewDelegatefor で、次の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 に答える