UITextField 委托返回多个文本字段

Posted

技术标签:

【中文标题】UITextField 委托返回多个文本字段【英文标题】:UITextField Delegate Return on mulitple text fields 【发布时间】:2013-07-09 15:04:20 【问题描述】:

新手,

我的单视图应用示例中有 4 个文本字段(地址、城市、州和邮政编码)。当用户点击每个键盘时,我正在尝试使用每个键盘的委托来关闭键盘。我不能有两个同名的方法。

这是关闭地址文本字段的方法:

-(BOOL) textFieldShouldReturn:(UITextField *)地址

if (address == self.address)  

   
      [address resignFirstResponder];
   

return YES;

所以,只有当用户在地址文本字段中时,我的返回键才能关闭键盘,但我不知道如何对其他文本字段使用委托。委托协议文档对此没有任何细节。

谢谢,

J。

【问题讨论】:

【参考方案1】:

这就是textFieldShouldReturn委托方法中传递的参数的使用。

如果您有多个文本字段,将调用相同的委托方法,并将文本字段发送者对象作为参数传递。

-(BOOL)textFieldShouldReturn:(UITextField *)textField

    if (textField == self.addressField)  
    
        //Do what you need to do if address field should return
    
    else if (textField == self.cityField)  
    
        //Do what you need to do if city field should return
    

    return YES;

但是,如果您只是要退出文本字段,并且由于文本字段是作为发件人传递的,您可以只退出传递的文本字段:

-(BOOL)textFieldShouldReturn:(UITextField *)textField

    [textField resignFirstResponder];
    return YES;

【讨论】:

以上是关于UITextField 委托返回多个文本字段的主要内容,如果未能解决你的问题,请参考以下文章

处理 UItableView 中 UItextfield 的委托

UITextField 委托“shouldChangeCharactersIn”不为文本字段中的第一个条目调用

编辑时如何更改 UITextField

调用文本字段:应该从委托方法ReplaceCharactersInRange

日期选择器在文本字段 iOS 8 上崩溃

如何将 uitextfield 字符范围限制为 10 位