小编Bin*_*pus的帖子

NSComboBox 未在下拉列表中显示当前选定的值

对 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 …

cocoa swift

2
推荐指数
1
解决办法
1127
查看次数

标签 统计

cocoa ×1

swift ×1