【问题标题】:How to set different data source for different combo box?如何为不同的组合框设置不同的数据源?
【发布时间】:2021-01-10 19:02:27
【问题描述】:

我有 3 个数组和 3 个组合框,如何将 3 个不同的数组设置为 3 个不同组合框的数据源 我知道为我们需要这样做的 1 个组合框设置数据源

class class1: NSViewController, NSComboBoxDataSource {
@IBOutlet weak var combobox1: NSComboBox!
@IBOutlet weak var combobox2: NSComboBox!
@IBOutlet weak var combobox3: NSComboBox!

var array1 = ["1", "2", "3"]
var array2 = ["4", "5", "6"]
car array3 = ["7", "8", "9"]

override func viewDidLoad() {
    super.viewDidLoad()
    combobox1.usesDataSource = true
    combobox1.dataSource = self
    
    combobox2.usesDataSource = true
    combobox2.dataSource = self
    
    combobox3.usesDataSource = true
    combobox3.dataSource = self
}

    func numberOfItems(in comboBox: NSComboBox) -> Int {
    return array1.count
}

func comboBox(_ comboBox: NSComboBox, objectValueForItemAt index: Int) -> Any? {
    return array1[index]
} }

我知道这会将array1 的值设置为combobox1,但是如何将array2 设置为combobox2 并将数组3 设置为combobox 3?

【问题讨论】:

    标签: swift combobox datasource


    【解决方案1】:

    试试这个:

    func comboBox(_ comboBox: NSComboBox, objectValueForItemAt index: Int) -> Any? 
    {
       if comboBox == comboBox1 { return array1[index] }
       else if comboBox == comboBox2 { return array2[index] }
       else if comboBox == comboBox3 { return array3[index] }
       return nil
    } 
    

    【讨论】:

    • 我需要在numberOfItems 中做同样的事情吗?如果这 3 个数组包含不同数量的数据?
    • 是的,提供物品数量时也需要这样做
    猜你喜欢
    • 2016-12-19
    • 2016-07-30
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多