我已经设置了Table View
以便在OSX扩展中显示。
我基本上从OSX TableViewController
复制了代码,然后在.xib TodayViewController
中创建了相关的接口,将tableView
的{{1}}连接到tableview组件。
在File's Owner
面板中,我还将扩展名TodayViewController.xib
设置为Main Interface
问题在于,当我运行扩展名时,方法General
被正确触发,但是numberOfRows(in tableView: NSTableView)
没有被触发。因此,我的观点是空的。
这是我的设置
tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int)
我想我缺少什么。
答案 0 :(得分:0)
您的直接问题是您从tableView(objectValueFor:row:)
中省略了NSTableViewDataSource
方法。如文档所述:
除非您的应用程序正在使用Cocoa绑定向表视图提供数据,否则此方法是强制性的。
tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int)
可用于自定义将用于显示对象值的视图,但是如果您从不首先提供对象值,那么您将走不了那么远。
但是,在macOS上,我建议查看NSArrayController
和Cocoa Bindings以填充表格视图。在大多数情况下,这很容易设置,并且免费提供了许多不错的功能。