2011-11-18 68 views
1

有没有办法检测使用标签属性是否存在UITextField?基本上我有一些动态创建的文本框,我想通过使用键盘上的返回键在字段中选项卡。iphone检查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. 
} 
+0

我想我的答案适用于ü –

回答

2

您可以直接检查这样

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

用于设置标签

 textFieldName.tag = 1; 
+0

我需要吨什么o do是使用标签检查文本字段是否存在给定的int。我在创建标签时设置了标签。所以我会做一些像NSInteger nextTag = textField.tag + 1;在textFieldShouldReturn但我需要看看是否存在nextTag值的字段。我怎样才能做到这一点? – camslaz

0

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

1

您可以使用isKindofClass:method.You可以这样做

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. 
}