将自定义PickerView连接到文本字段

时间:2017-01-28 17:26:02

标签: swift xcode uitextfield uipickerview

我从github(https://github.com/bendodson/MonthYearPickerView-Swift")获得了自定义UIPickerView,现在我尝试将其连接到文本字段而没有运气。我设法使用UiDatePicker.addTarget方法使用标准.valueChanged,但使用此自定义addTarget会引发错误。现在,我只设法将文本字段inputView设置为自定义PickerView,但不使用我的"完成"来保存输入。我创建的按钮。我错过了什么?

lazy var ExpireDatetextfeild: UITextField = {
    let tf = LeftPaddedTextFeild()
    tf.placeholder = "MM/YY"
    tf.translatesAutoresizingMaskIntoConstraints = false
    tf.addTarget(self, action: #selector(textfeildediting), for: .editingDidBegin)
    return tf
}()


let DatePickerView: MonthYearPickerView = MonthYearPickerView()


func textfeildediting() {
    let DatePickerView: MonthYearPickerView = MonthYearPickerView()
    DatePickerView.backgroundColor = .white

    let toolBar = UIToolbar()
    toolBar.barStyle = UIBarStyle.default
    toolBar.isTranslucent = true
    toolBar.backgroundColor = UIColor.white
    toolBar.sizeToFit()
    let donebutton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(DoneFunc))
    let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
    let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.plain, target: self, action: #selector(cancelFunc))
    toolBar.setItems([cancelButton, spaceButton, donebutton], animated: false)
    toolBar.isUserInteractionEnabled = true

    ExpireDatetextfeild.inputAccessoryView = toolBar
    ExpireDatetextfeild.inputView = DatePickerView

}

func cancelFunc(sender: UIBarButtonItem) {
    DatePickerView.isHidden = true
    print("DatePickerPrint")
}

func DoneFunc(sender: UIBarButtonItem) {
    DatePickerView.onDateSelected = { (month: Int, year:Int) in
    let Yearstring = String(format: "%02d/%d", month, year)
    print(Yearstring)
    }
}

0 个答案:

没有答案