我有四个用于地址,城市,州和邮政的文本字段。我只需要为状态字段调用Picker View,所以我只需要在状态文本字段中隐藏键盘。我尝试使用这段代码在textFieldShouldBeginEditing函数中执行此操作,但它将其应用于所有文本字段。
func textFieldShouldBeginEditing(state: UITextField) -> Bool {
return false
}
我也将这段代码应用于所有文本字段,以便键盘在返回时隐藏
func textFieldShouldReturn(textField: UITextField!) -> Bool {
self.view.endEditing(true)
return false
}
所以我的所有文本字段都在viewDidLoad
中 address.delegate = self
city.delegate = self
zip.delegate = self
state.delegate = self
我希望这足够具体。谢谢你的帮助!
答案 0 :(得分:3)
首先,通过这样做
func textFieldShouldBeginEditing(state: UITextField) -> Bool {
return false
}
你没有“选择”textField,你只是命名那个变量。
您应该做的是将该变量与您的属性进行比较,并根据具体情况采取行动。
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
if(textField == self.state)
return false
return true;
}
PS。 address
,city
等不是很好的变量名。当然,你知道它们是什么,但如果其他人正在查看代码并不明显,我建议使用addressTextField
甚至addressField
之类的名称。
答案 1 :(得分:2)
在委托回调中,您可以使用文本字段验证“textField”。 例如:
func textFieldShouldReturn(textField: UITextField!) -> Bool {
if textField == address {
self.view.endEditing(true)
return false
}
...
}