gpt4 book ai didi

swift - 如何在同一个 View Controller 中实现多个组合框的数据源

转载 作者:搜寻专家 更新时间:2023-11-01 07:14:33 24 4
gpt4 key购买 nike

我有 2 个组合框,它们使用同一个字典作为数据源。在第一个组合框中将显示键,在第二个组合框中将显示值。

首先,我需要一些帮助来实现数据源委托(delegate)方法;请参阅下面的代码 list 。相关的框是 floorsBox 和 roomsBox。忽略其他 2 个,因为它们将从局部变量或接口(interface)填充。另外,假设在一楼 [key = 0] 我有 3 个房间 [value = 3],我如何取值 3 并将其放入 roomsBox 中的 3 个项目;这样每次地板变化时,房间的盒子都有相应数量的元素(如果这有意义的话)。非常感谢您的帮助,非常感谢。

class RoomAndAlarmTypesVC: NSViewController, NSComboBoxDelegate, NSComboBoxDataSource {

//MARK: - Properties

private var floorsAndRooms = [String: String]()

@IBOutlet private weak var floorsBox: NSComboBox!

@IBOutlet private weak var roomsBox: NSComboBox!

@IBOutlet private weak var roomType: NSComboBox!

@IBOutlet private weak var alarmType: NSComboBox!

//MARK: - Actions

override func viewDidLoad() {
super.viewDidLoad()
floorsAndRooms = representedObject as! [String : String]
floorsBox.usesDataSource = true
roomsBox.usesDataSource = true
roomType.usesDataSource = true
alarmType.usesDataSource = true

floorsBox.delegate = self
roomsBox.delegate = self
roomType.delegate = self
alarmType.delegate = self

floorsBox.dataSource = self
roomsBox.dataSource = self
roomType.dataSource = self
alarmType.dataSource = self
}
@IBAction private func setTheSystem(_ sender: NSButton) {

}

func numberOfItems(in comboBox: NSComboBox) -> Int {
what do i do here?
}

func comboBox(_ comboBox: NSComboBox, objectValueForItemAt index: Int) -> Any? {
same here?
}

最佳答案

使用基于发件人的 switch 语句(您的 comboBox 参数)

例如:

switch comboBox
{
case floorsBox : return // the data for floors
case roomsBox : return // the data for rooms
...
}

关于swift - 如何在同一个 View Controller 中实现多个组合框的数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42911533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com