对 Mac 应用程序编程非常陌生,我遇到了问题。在我的 NSComboBoxes 上,当重新打开下拉菜单时,它们不会突出显示当前选定的项目。我可能只是失明,或者默认的高亮颜色可能是透明的。我只是不知道。请参阅下图了解我得到的内容。
在这一点上,我编写的代码很少,一切都在我的故事板上完成。只是有点困惑为什么它不做一些应该很简单的事情。猜猜我在 iOS 领域花了太多时间。
因此决定将整个项目重新创建为一个单独的示例 NSCombobox,以证明在运行 Xcode 9.2 时这对我来说很简单。
我连接的唯一出口是 NSComboBox 的委托和数据源。NSComboBox 上唯一更改的设置是启用数据源,并将行为更改为 Selectable。运行这个组合的代码同样简单:
import Cocoa
class ViewController: NSViewController, NSComboBoxDelegate, NSComboBoxDataSource {
@IBOutlet weak var combo: NSComboBox!
var dataSource: [String] = ["Off"]
override func viewDidLoad() {
super.viewDidLoad()
for index in 1...512 {
dataSource.append("\(index)")
}
combo.reloadData()
combo.selectItem(at: 0)
}
func comboBox(_ comboBox: NSComboBox, objectValueForItemAt index: Int) -> Any? {
return dataSource[index]
}
func numberOfItems(in comboBox: NSComboBox) -> Int {
return dataSource.count
}
}
Run Code Online (Sandbox Code Playgroud)
根据此处的 Apple 文档,下拉列表应显示所选项目:Apple …