如何应用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 

我希望这是足够具体。谢谢你的帮助!

+0

如果你想有一个选择器视图,而不是标准的键盘文本字段,将文本字段的'inputView'到选择器视图。你不需要实现'textFieldShouldBeginEditing'。 – rmaddy 2015-03-31 23:05:56

在委托回调中,您可以使用您的文本字段验证'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。 addresscity等都不是很好的变量名称。当然,你知道他们是什么,但如果别人正在查看代码,它不会很明显,我会建议使用名称,如addressTextField或甚至addressField

+0

非常感谢您对变量名称的帮助和提示! – Cassandra 2015-03-31 23:05:36