swift - 如何更改 NSPopUpButtonCell NSTableView Swift 4.2 中的 selectItem?

标签 swift xcode macos nstableview nspopupbuttoncell

我想更改 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 中更新。

最佳答案

您可以使用 NSTableViewDelegate 的 willDisplayCell 方法来实现此目的。

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)
    }
}

关于swift - 如何更改 NSPopUpButtonCell NSTableView Swift 4.2 中的 selectItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54378780/

相关文章:

swift - 单击自定义 NSTableViewCell 时触发 Viewcontroller 中的方法

swift - NSOpenPanel使用详解

iOS - 如何在带有半透明黑色状态栏的 Storyboard中回收前 20 像素

iphone - 命令行编译 iPhone 应用程序

ios - 定位一个文本文件 Objective C

macos - 在 macOS 的 Swift 5.x 中设置证书信任

ios - 在没有 PKCanvasView 的情况下使用 PKToolPicker

objective-c - 快速加载数据到 NSTableView

Swift:无法将文件复制到新创建的文件夹

python - 在 Mac OS X Yosemite 上安装 Python3