gpt4 book ai didi

ios - UITextfield 委托(delegate)响应所有文本字段

转载 作者:行者123 更新时间:2023-11-30 13:54:52 25 4
gpt4 key购买 nike

我有以下代码

var departureField = UITextField()
var arrivalField = UITextField()
var dateField = UITextField()

我正在为 arrivalField 设置委托(delegate),而不是为其他字段设置委托(delegate)

arrivalField.delegate = self

我有以下委托(delegate)方法textFieldShouldBeginEditing。当我点击出发字段或日期字段时,两者都会响应该方法。我只为到达字段设置了委托(delegate),并且我只想响应到达文本字段。我完全错过了什么吗?

import Foundation
import SwiftDate

class FlightStatusRouteViewController: UIViewController, UITextFieldDelegate {

var date = NSDate()

var departureField: UITextField!
var arrivalField: UITextField!
var dateField: UITextField!

override func viewDidLoad() {
self.createUI(self.view)
}

func createUI(parent: UIView) {
let height = CGFloat(45)
let datePicker = UIDatePicker()
let btn = createButton("Submit")

departureField = self.createInput("Departure Airport")
arrivalField = self.createInput("Arrival Airport")
dateField = self.createInput("Departure Date")

departureField.delegate = nil
arrivalField.delegate = self
dateField.delegate = nil

datePicker.datePickerMode = UIDatePickerMode.Date
dateField.inputView = datePicker
datePicker.addTarget(self, action: "updateDate:", forControlEvents: UIControlEvents.ValueChanged)

parent.addSubview(departureField)
parent.addSubview(arrivalField)
parent.addSubview(dateField)
parent.addSubview(btn)

self.createTapGesture(btn, action: "submitForm:")

dateField.text = date.toString(format: DateFormat.Custom("EEEE, dd MMMM YYYY"))

dateField.snp_makeConstraints{ (make) -> Void in
make.left.equalTo(parent)
make.right.equalTo(parent)
make.top.equalTo(parent).offset(10)
make.height.equalTo(height)
}

departureField.snp_makeConstraints{ (make) -> Void in
make.left.equalTo(parent)
make.right.equalTo(parent)
make.height.equalTo(height)
make.top.equalTo(dateField.snp_bottom).offset(10)
}

arrivalField.snp_makeConstraints{ (make) -> Void in
make.left.equalTo(parent)
make.right.equalTo(parent)
make.top.equalTo(departureField.snp_bottom).offset(10)
make.height.equalTo(height)
}

btn.snp_makeConstraints{ (make) -> Void in
make.top.equalTo(arrivalField.snp_bottom).offset(20)
make.left.equalTo(parent)
make.right.equalTo(parent)
make.height.equalTo(height)
}
}

func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
let searchVc = SearchAirportsTableViewController()
searchVc.searchField = textField
self.presentViewController(searchVc, animated: true, completion: nil)
return false
}

internal func updateDate(sender: UIDatePicker) {
date = sender.date
self.dateField.text = sender.date.toString(format: DateFormat.Custom("EEEE, dd MMMM YYYY"))
}
}
<小时/>
func createInput(placeholder: String) -> UITextField {
let textfield = TextField()
let fonts = FlySAAFonts()

textfield.placeholder = placeholder
textfield.layer.cornerRadius = 5
textfield.layer.borderWidth = 1
textfield.font = UIFont(name: fonts.std, size: 14)!
textfield.backgroundColor = FlySAAColors.offWhite
textfield.tintColor = FlySAAColors.darkGry
textfield.borderStyle = UITextBorderStyle.None
textfield.layer.borderWidth = 0

return textfield
}

最佳答案

您可以在 Storyboard 上查看 socket 。

或在

textFieldShouldBeginEditing

你检查是否

textField == departureField || textField == dateField
return false

关于ios - UITextfield 委托(delegate)响应所有文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758747/

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