访问 NSTableviews 自定义 Tablecellview

Accessing a NSTableviews custom Tablecellview

我制作了一个 NSTableview 和一个自定义的 tablecellview-class "KSTablecellview",它定义了 tableview 中的单元格。

现在我正在尝试在特定时间访问这些单元格及其中的元素,例如通过用户输入触发。

例如,我想在我的一个自定义单元格视图中更改文本字段的文本。我试过了:

Outlet_TableView.selectRowIndexes(IndexSet(integer: 0), byExtendingSelection: false) // Selecting row #1

let view = Outlet_TableView.view(atColumn: 0, row: 0, makeIfNecessary: false) as! KSTableCellView // getting cellview, at first row/ first column (-> crashes)    
view.myTextField.stringvalue = "Hello World"

这没有给我“[...] [默认] 无法加载 Info.plist 异常(eGPUOverrides)”

我尝试了一些其他的东西,试图找出问题的原因,但我做不到,我还是个初学者。

任何帮助都会非常有用。

我正在使用 XCode 和 Swift,尝试为 Mac OS 构建应用程序。

您应该尽量避免手动更新单元格的内容。相反,您应该从数据源重新加载数据。

func reloadData(forRowIndexes rowIndexes: IndexSet, 
                           columnIndexes: IndexSet)

这将依次从您的数据源中给定的 index/column 获取数据。

例如,您的数据源可能会在用户事件发生后在给定索引处包含 "Hello World"(前提是您更新了数据源内容),因此会在 dataCellFor: 中使用委托方法。

可能是您在首次加载 table 之前(例如在 viewDidLoad 中)或在 tableView 上使用 numberOfRows = 0 执行这些操作。

tableView 加载该行之前,它不会在该行内创建视图,并且 tableView.view(atColumn:, row:, makeIfNecessary: false) 将 return nil 并强制展开此 nil 将使您的应用程序崩溃。