2017-09-17 1 views
-2

my xib storyboard as follow : enter image description hereテーブルビューのセルのtextFiledが決して変更されないのはなぜですか?

the result is this

==================================== ==============================

class ViewController: NSViewController,NSTableViewDelegate, NSTableViewDataSource{ 

@IBOutlet weak var sidebarView: NSTableView! 

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

    return 9 
} 


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

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

    let str:String = (tableColumn?.identifier)! 
    if str == "SIDEBAR_ITEM" { 
     tableCellView!.textField?.stringValue = "test" 
     print(tableCellView!.textField?.stringValue) 
    } 
    return tableCellView 
} 

func tableView(_ tableView: NSTableView, rowViewForRow row: Int) -> NSTableRowView? { 
    //print("rowViewForRow") 
    return NSTableRowView(frame: NSRect(x: 0, y: 0, width: 100, height: 100)) 

}} 

============= ========================================== ===

これについて何が間違っていますか?それはどんなエラー設定ですか?いつも "テーブルビューセル"を表示しています

+0

コードを実行するとき、 'objectValueFor'メソッド内の' str'の実際の値は何ですか? – rmaddy

+0

プロトコル 'NSTableViewDelegate'がメソッド' tableView(_:viewFor:row:) 'を宣言し、実装するべきときは知っていますか? (もう1つ、画像ではなくテキストとしてコードを表示する方がよいでしょう) – OOPer

+0

strの値は比較値 "SIDEBAR_ITEM"と同じですが、私もtableView(_:viewFor:row :) methoeを実装していますしかし、それは決してタイトルを変更しません。 – MJ000111

答えて

0

最後に、問題が見つかりました! メソッドが実装されていません "tableView(_ tableView:NSTableView、viewFor tableColumn:NSTableColumn ?, row:Int) - > NSView?

関連する問題