Как изменить selectItem в NSPopUpButtonCell NSTableView Swift 4.2? - PullRequest
0 голосов
/ 26 января 2019

Я хочу изменить индекс всплывающей кнопки в NSTableView.

func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {

    let dataCell:NSPopUpButtonCell = tableColumn?.dataCell as! NSPopUpButtonCell
        dataCell.addItems(withTitles: dataTypes)
        return data.type //dataCell 

}

func tableView(_ tableView: NSTableView, setObjectValue object: Any?, for tableColumn: NSTableColumn?, row: Int) {

    dataSourceArr[row].type = dataTypes[object as! Int]
        tableView.reloadData()

}

Я могу обновить свой массив dataSource, но не могу обновить в tableView.

1 Ответ

0 голосов
/ 28 января 2019

Вы можете использовать метод willDisplayCell NSTableViewDelegate для достижения этой цели.

extension ViewController: NSTableViewDelegate {

    func tableView(_ tableView: NSTableView, willDisplayCell cell: Any, for tableColumn: NSTableColumn?, row: Int) {

        guard let dataCell = cell as? NSPopUpButtonCell else {return}
        dataCell.selectItem(at: row) // or dataCell.selectItem(withTitle: //title)
    }
}
...