[英]How to get text from textfield tag in iPhone
我正在动态创建文本字段,并且每个文本字段都有标签。现在,我试图使用该标签获取文本字段的文本,但是它返回UIButton并且我的应用程序崩溃了。我如何从标签获取文本? 请帮我。 这是我获取文本的代码:
UITextField *textValue = (UITextField *)[self.view viewWithTag:textField.tag];
NSString *chkText = textValue.text;
NSLog(@"entered Text %@",chkText);
我的应用程序在此行崩溃:
NSString *chkText = textValue.text;
错误是:-[UIButton文本]:无法识别的选择器已发送到实例
主要问题是您的视图也包含按钮。 因此,当您尝试访问它时。 它正在返回UIButton对象。 因此,最好检查条件是按钮类型还是文本字段类型对象。 请尝试以下:
id nextTextField = [self.view viewWithTag:textField.tag];
nextTextField=([nextTextField isKindOfClass:[UITextField class]]) ? nextTextField.text : nextTextField.title;
NSLog(@"%@", nextTextField);
将textfield标记设置为任何唯一值,例如“ 346”。 (避免使用0作为标记值)。 并使用它-
UITextField *textValue = nil;
id myObj = [self.view viewWithTag:yourTagValue];
if([myObj isKindOfClass:[UITextField class]])
{
textValue = (UITextField*)myObj;
NSString *chkText = textValue.text;
NSLog(@"entered Text %@",chkText);
}
从您的代码( viewWithTag:textField.tag
),如果您可以访问textField
那么为什么viewWithTag:textField.tag
访问它呢? 但是,以下说明将帮助您
您已在同一视图中将相同的标签分配给您的UIButton控件之一。 还要确保textField.tag
大于零 。
以下代码将解决崩溃问题,但是,它不能解决您的问题。
UITextField *textFeild = [[self.view viewWithTag:textFieldTag] isKindOfClass:[UITextField class]]?(UITextField *)[self.view viewWithTag:textFieldTag]:nil;
if(nil != textFeild)
{
NSString *chkText = textFeild.text;
NSLog(@"entered Text %@",chkText);
}
else
{
NSLog(@"textFeild is null");
}
使用标签时,使用NS_ENUM是一个好习惯。
NS_ENUM(NSUInteger, TEST_TAGS)
{
TAG_TEXT_INPUT,
TAG_BTN_GO,
};
然后就可以使用它了。
[textField setTag:TAG_TEXT_INPUT];
首先检查要将哪个文本字段添加为哪个子视图。
以该UIVIew实例为例,并调用viewWithTag方法,然后您的代码即可工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.