Я настроил Table View
для отображения в расширении OSX.
Я в основном скопировал код из OSX TableViewController
, затем я создал соответствующий интерфейс в .xib TodayViewController
, соединил tableView
из File's Owner
с компонентом tableview.
Я также установил TodayViewController.xib
как Main Interface
для расширения на панели General
Проблема в том, что когда я запускаю расширение, метод numberOfRows(in tableView: NSTableView)
запускается правильно, но не tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int)
. Следовательно, мой взгляд пуст.
У меня есть установка
class TodayViewController: NSViewController, NSTableViewDataSource, NSTableViewDelegate, NCWidgetProviding {
@IBOutlet weak var tableView: NSTableView!
override var nibName: NSNib.Name? {
return NSNib.Name("TodayViewController")
}
func widgetPerformUpdate(completionHandler: (@escaping (NCUpdateResult) -> Void)) {
// Update your data and prepare for a snapshot. Call completion handler when you are done
// with NoData if nothing has changed or NewData if there is new data since the last
// time we called you
completionHandler(.noData)
}
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
tableView.headerView = nil
tableView.target = self
tableView.action = #selector(self.onItemClicked)
tableView.isEnabled = true
fetchData() // -> this method contains tableView.reloadData()
}
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
// ...
}
func numberOfRows(in tableView: NSTableView) -> Int {
// ...
}
}
Я думаю, что что-то упустил.