访问NSTableviews自定义Tablecellview

时间:2019-01-28 01:46:29

标签: swift macos nstableview

我制作了一个NSTableview和一个自定义的tablecellview类“ 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构建应用程序。

2 个答案:

答案 0 :(得分:0)

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

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

这又会从给定索引/列的数据源中获取数据。

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

答案 1 :(得分:0)

可能是您在第一次加载表格之前(例如,在viewDidLoad中或在tableView中使用numberOfRows = 0进行了这些操作。

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