代码之家  ›  专栏  ›  技术社区  ›  Peter Tretyakov

UIPickerView隐藏时选择第一行

  •  0
  • Peter Tretyakov  · 技术社区  · 9 年前

    我做了一个工具栏 UIPickerView :

    override func viewDidLoad() {
        pickerToolbar.barStyle = UIBarStyle.Default
        pickerToolbar.translucent = true
        pickerToolbar.tintColor = UIColor(red: 0.0, green: 112/255, blue: 186/255, alpha: 1.0)
        pickerToolbar.sizeToFit()
    
        let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "hidePicker()")
        let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
        let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "hidePicker()")
    
        pickerToolbar.setItems([cancelButton, spaceButton, doneButton], animated: false)
        pickerToolbar.userInteractionEnabled = true
    
        typePicker.addSubview(pickerToolbar)
    }
    
    func hidePicker() {
        typePicker.hidden = true
    }
    

    但当我点击“完成”或“取消”按钮时,选择器选择第一行并关闭。我不想要这样的行为,我只想隐藏选择器并保留选定的值。

    所以,我有两个问题:

    1. 为什么? 普通选择器 表现得像这样?
    2. 如何预防?

    谢谢你的帮助!

    1 回复  |  直到 9 年前
        1
  •  0
  •   Allen    9 年前


    我发现你有两个错误。一个是行动的错别字。它必须是 动作:“hidePicker” ,根据您的代码,没有括号。 第二个是您的pickerToolbar不应该是pickerView的子视图。将其更改为 self.view.addSubview(选择器工具栏) 你会看到变化的。

    干杯