我在回答我自己的问题。请注意,我是一个初学者,不知道这是否是正确的处理方法。正如用户stevesilva在上述问题的评论中指出的那样,我必须实现委托方法
tableView:viewForTableColumn:row:以确保表基于视图。在委托方法中,我尝试创建一个NSTableCellView并绑定了textField属性,但这没有用。我必须继承NSTableCellView,创建一个新的文本字段属性,然后绑定该属性。这就是我的代表最终的样子。
func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? { let frameRect = NSRect(x: 0, y: 0, width: tableColumn!.width, height: 20) let tableCellView = MyTableCellView(frame: frameRect) if tableColumn?.identifier == "name column" { tableCellView.aTextField?.bind("value", toObject: tableCellView, withKeyPath: "objectValue.name", options: nil) } else if tableColumn?.identifier == "raise column" { tableCellView.aTextField?.bind("value", toObject: tableCellView, withKeyPath: "objectValue.raise", options: nil) } return tableCellView}这是我的子类NSTableCellView:
class MyTableCellView: NSTableCellView { var aTextField: NSTextField? override init(frame frameRect: NSRect) { super.init(frame: frameRect) aTextField = NSTextField(frame: frameRect) aTextField?.drawsBackground = false aTextField?.bordered = false self.addSubview(aTextField!) } required init?(prer: NSCoder) { fatalError("init(prer:) has not been implemented") }}


