繁体   English   中英

如何从iPhone中的textfield标签获取文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM