macos - 如何在使用 Xcode 12 的 macOS 程序的 Tableview 中为 NSComboBoxCell 编码数据源?
问题描述
我有一个带有 tableView 的测试应用程序,该应用程序对 Xcode 12 中的一列有一个 comboBoxCell:
The view controller code is as follows:
//
// ViewController.swift
// ComboBoxExample
//
//
import Cocoa
class ViewController: NSViewController, NSComboBoxCellDataSource {
var states = ["Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware",
"Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky",
"Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi",
"Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico",
"New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania",
"Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont",
"Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming"]
// var itemCombo: NSComboBoxCellDataSource? = states
@IBOutlet weak var itemComboCell: NSComboBoxCell!
override func viewDidLoad() {
super.viewDidLoad()
itemComboCell.usesDataSource = true
itemComboCell.dataSource = self
self.itemComboCell.completes = true
// Do any additional setup after loading the view.
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
func numberOfItemsInComboBoxCell(in comboBoxCell: NSComboBoxCell) -> Int {
// anArray is an Array variable containing the objects
return states.count
}
func comboBoxCell(_ comboBoxCell: NSComboBoxCell, objectValueForItemAt index: Int) -> Any {
return (states[index])
}
}
运行示例时出现以下错误:2021-03-05 15:16:29.940373-0600 ComboBoxExample[40515:1914724] *** 非法 NSComboBoxCell 数据源 (<ComboBoxExample.ViewController: 0x600000e501b0>)。必须实现 numberOfItemsInComboBoxCell: 和 comboBoxCell:objectValueForItemAtIndex:
尝试使用以下内容设置数据源我做错了什么: itemComboCell.dataSource = self
谢谢
下面是这个测试应用程序的故事板的图像。
解决方案
Objective-C
- (NSInteger)numberOfItemsInComboBoxCell:(NSComboBoxCell *)comboBoxCell;
在斯威夫特
optional func numberOfItems(in comboBoxCell: NSComboBoxCell) -> Int
推荐阅读
- iis - 在发布托管在 IIS 中的 blazor 程序集应用程序 ASP.NET CORE 后,我收到了 DirectoryNotFoundException 错误
- python - 带有 datetime 和 sharex 的 pandas bar 和 line 子图
- ubuntu - 来自类的计时计时器类传递方法不起作用
- xml - 基于属性引用与 XPath 匹配节点
- c - 如何传递一个 malloc 的指针数组地址,以便我可以更改数组中的指针?
- maven - gitlab-ci 中的自动增量版本
- javascript - Ghost Members Newsletter,从 API 订阅新用户
- palantir-foundry - Workshop 与 Foundry 中的 Slate 有何不同?
- matlab - 如何解析包含 CSV 数据集的字符串变量?
- scala - 在我的示例中了解 scala 二进制兼容性