访问 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
将使您的应用程序崩溃。
我制作了一个 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
将使您的应用程序崩溃。