gpt4 book ai didi

swift - 将存储在对象中的uipickerview添加到viewcontroller的 View 中

转载 作者:行者123 更新时间:2023-11-30 12:47:19 26 4
gpt4 key购买 nike

SO 上的许多人建议使用 uipickerview 和 uitextfield 来制作类似下拉菜单的界面。我有一个 pickerview 存储在一个对象中。当点击文本字段时,如何将其添加到 View Controller 的 View 中?

最佳答案

不存储pickerview,只存储下拉类中的数据源。使 ViewController 成为下拉类的委托(delegate)。当文本字段开始编辑时,调用委托(delegate)方法将pickerview和viewcontroller的数据源设置为下拉列表

下拉委托(delegate)协议(protocol):

protocol DropdownDelegate : class {
func activateDropdown(dropdown: Dropdown)
}

下拉类:

class Dropdown: UITextField, UITextFieldDelegate, UIPickerViewDataSource, UIPickerViewDelegate {
var dataSouce : String = []

func textFieldDidBeginEditing(_ textField: UITextField) {
if textField == self {
if(dropdownDelegate != nil) {
dropdownDelegate?.activateDropdown(dropdown: self)
textField.endEditing(true)
}
}
}
//rest of delegate methods
}

ViewController类

class ViewController: UIViewController, DropdownDelegate {
@IBOutlet weak var pickerView: UIPickerView!

func activateDropdown(dropdown: Dropdown) {
self.pickerView.delegate = dropdown
self.pickerView.dataSource = dropdown
}

func deactivateDropdown() {
changeDropdownStatus(status: true)
self.pickerView.isHidden = true
}
}

关于swift - 将存储在对象中的uipickerview添加到viewcontroller的 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41474975/

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