我制作了一个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构建应用程序。
答案 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
会使您的应用程序崩溃