如何应用textFieldShouldBegin编辑Swift中的一个特定UITextField
问题描述:
我有四个地址,城市,州和邮编的文本字段。我只需要为状态字段调用Picker View,所以我只需要在状态文本字段中隐藏键盘。我正在尝试使用这段代码在textFieldShouldBeginEditing函数中执行此操作,但它将它应用于所有文本字段。如何应用textFieldShouldBegin编辑Swift中的一个特定UITextField
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
我希望这是足够具体。谢谢你的帮助!
答
在委托回调中,您可以使用您的文本字段验证'textField'。 例如:
func textFieldShouldReturn(textField: UITextField!) -> Bool {
if textField == address {
self.view.endEditing(true)
return false
}
...
}
答
首先,通过这样
func textFieldShouldBeginEditing(state: UITextField) -> Bool {
return false
}
你没有“选择”文本字段,你只是命名该变量。
您应该做的是将该变量与您的属性进行比较,并根据该值进行操作。
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
if(textField == self.state)
return false
return true;
}
PS。 address
,city
等都不是很好的变量名称。当然,你知道他们是什么,但如果别人正在查看代码,它不会很明显,我会建议使用名称,如addressTextField
或甚至addressField
。
+0
非常感谢您对变量名称的帮助和提示! – Cassandra 2015-03-31 23:05:36
如果你想有一个选择器视图,而不是标准的键盘文本字段,将文本字段的'inputView'到选择器视图。你不需要实现'textFieldShouldBeginEditing'。 – rmaddy 2015-03-31 23:05:56