2016-12-17 6 views
0

テーブルがあります。変更されたテキストを含む行を作成すると、アプリケーションに表示されません。NSTableViewのNSTextFieldは値を更新しません

var items : [String] = [] 

override func viewDidLoad() { 

    super.viewDidLoad() 
    items.append("Apples") 
    items.append("Oranges") 

    tableView.reloadData() 

} 

func numberOfRows(in tableView: NSTableView) -> Int { 

    return items.count 

} 

func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any?{ 

    let result : NSTableCellView = tableView.make(withIdentifier: tableColumn!.identifier, owner: self) as! NSTableCellView 

    print(tableColumn?.title) 
    result.textField?.stringValue = items[row] 
    print(result.textField?.cell?.title) 

    return result 

} 

}

はコンソールでは、それは大丈夫に見えますが、それは以前の値

デフォルトで

enter image description here

enter image description here

ログ欄のテキストフィールド= 1と日付を示し= 2

+0

私は、結果のテキストフィールドか何かとテーブルビューの間の関係は表示されません。これはビューベースのテーブルビューになっていますか? –

+0

'結果:NSTableCellView = tableView.make(withIdentifier:tableColumn!.identifier、owner:self)as! NSTableCellView' – osadchi

+0

@ElTomato、結果=列の新しい行。それはテキストフィールドを含んでいます。新しいstringValueを設定して印刷すると、新しい値が表示されますが、テーブルには以前の値が表示されます。 – osadchi

答えて

1

私は行きますそれで私はタイプをセルベースとtableViewの機能に変更しました。

func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? { 

    return items[row] 

} 
関連する問題