iphone使用标签检查UITextField是不是存在

Posted

技术标签:

【中文标题】iphone使用标签检查UITextField是不是存在【英文标题】:iphone check if UITextField exists using Tagiphone使用标签检查UITextField是否存在 【发布时间】:2011-11-18 08:37:18 【问题描述】:

有没有办法使用 Tag 属性来检测 UITextField 是否存在?本质上,我有许多动态创建的文本字段,我想使用键盘上的返回键来浏览这些字段。

我正在尝试在另一篇文章中使用以下代码,但“textField.superview”返回 null。我正在以编程方式创建文本字段。

-(BOOL)textFieldShouldReturn:(UITextField*)textField;

  NSInteger nextTag = textField.tag + 1;
  // Try to find next responder
  UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
  if (nextResponder) 
    // Found next responder, so set it.
    [nextResponder becomeFirstResponder];
   else 
    // Not found, so remove keyboard.
     [textField resignFirstResponder];
  
  return NO; // We do not want UITextField to insert line-breaks.

【问题讨论】:

我认为我的回答对你有用 【参考方案1】:

你可以这样直接检查

       -(BOOL)textFieldShouldReturn:(UITextField*)textField 
             if (textField.tag == 1) 
             //Do the stuff what you want here
             
        

用于设置标签

        textFieldName.tag = 1;

【讨论】:

我需要做的是使用标签检查是否存在具有给定 int 的文本字段。我在创建它们时设置了标签。所以我会做类似 NSInteger nextTag = textField.tag + 1;在 textFieldShouldReturn 但我需要查看是否确实存在具有 nextTag 值的字段。我该怎么做?【参考方案2】:

你可以使用 isKindofClass: 方法。你可以这样做

 if ([[textField.superview viewWithTag:nextTag] isKindOfClass:[UITextField class]])
  
    // Found next responder, so set it.
    [(UITextField *)[textField.superview viewWithTag:nextTag] becomeFirstResponder];
   else 
    // Not found, so remove keyboard.
     [textField resignFirstResponder];
  
  return NO; // We do not want UITextField to insert line-breaks.

【讨论】:

【参考方案3】:

您是否设置了文本字段的标签?标签字段不会自动设置,您必须在创建文本字段时自行设置,以便以后识别。如果你不设置它,它们都默认为 0 - 所以你永远不会找到任何文本 > 0 的字段。

【讨论】:

以上是关于iphone使用标签检查UITextField是不是存在的主要内容,如果未能解决你的问题,请参考以下文章

在 iphone sdk 中动态创建多个 UITextfield

iphone,UITableView中的UITextField

如何在 Swift 2.0 中检查 UITextField 是不是为空白?有没有更好的方法来计算字符串? [复制]

我们如何检查iphone是不是处于待机模式?

如何测试键盘是不是覆盖 UITableView 中的 UITextField?

检查用户是不是使用 phonegap 1.7 在 iPhone 上启用了推送通知