【问题标题】:Updating TextFields upon selecting option choosing/closing UIPickerView without button?在选择选项时更新文本字段选择/关闭没有按钮的 UIPickerView?
【发布时间】:2016-02-11 23:00:22
【问题描述】:

我正在使用 Swift 2 在 Xcode 7 中工作。

我在文本字段中设置了 UIPickerViews,它们都在正常工作。我使用以下方法关闭选择器视图:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

    pickerOptions.resignFirstResponder()
    (etc.)
}

我的问题是我有一个pickerview,我想成为一个“预设”菜单,它将通过选择一个pickerview值来更新3个常规文本字段输入和一组值,而无需使用按钮更新值。我不完全确定该怎么做,因为我对代表还不是很熟悉(如果它甚至涉及他们的话)。我真的不知道如何更新/刷新 ViewController。

我猜它与textFieldDidEndEditing 有关(因为我已经通过设置 UIPickerView 设置了这些类:UIPickerViewDataSourceUIPickerViewDelegateUITextFieldDelegate)任何帮助表示赞赏:)

【问题讨论】:

    标签: ios swift uitextfield uipickerview


    【解决方案1】:

    这都是关于代表的。我了解您有一个 pickerView 应该在用户选择时设置一些 textFields 的内容。 pickerView 是一个股票对象,它需要告诉你的班级发生了什么,而不知道你班级的任何具体情况。它是这样说的,如果你实现了我定义的这个协议,那么我会调用你的函数让你知道。对于pickerView,相关的协议是UIPickerViewDelegate,它暴露了一个名为delegate 的属性,该属性只能设置为实现该协议的对象。如果设置了pickerView的委托,当用户滚动pickerView时,它将调用该对象的pickerView:didSelectRow:inComponent:函数。

    您只需要创建一个符合UIPickerViewDelegate 协议的对象,并相应地设置pickerView 的delegate 属性。通常,您只需将这种能力添加到您的 viewController 中,如下所示:

    class viewController: UIViewController, UIPickerViewDelegate {
        func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
            // Now you can update the textField(s)
        }
    }
    

    注意pickerView:didSelectRow:inComponent: 的定义被标记为可选。这意味着如果你说你实现了UIPickerViewDelegate,但没有定义它,编译器不会让你知道。如果您不小心拼写错误或签名错误,这可能会造成混淆 - 您会认为它已定义但永远不会被调用。

    【讨论】:

      【解决方案2】:

      你可以实现委托方法:

      - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row   inComponent:(NSInteger)component
      {
          //put your code here
      }
      

      属于UIPickerViewDelegate 协议。

      要查看 XCode option 上的协议文档 + 单击协议名称。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-15
        • 2017-03-15
        • 1970-01-01
        • 1970-01-01
        • 2015-08-17
        • 2010-11-22
        • 1970-01-01
        相关资源
        最近更新 更多