我为不同类型的输入(日期,选择器等)创建不同的UITextField。 我已经使用标签来识别每种类型的不同textField。
如何识别没有标签的文本字段。 我可以为textFields分配字符串标识符吗?
答案 0 :(得分:1)
您可以添加CATEGORY
,创建任何字符串方法,例如 stringTag 等。您的问题已解决。
或
您可以使用UITextField's attributedText, placeholder
属性存储字符串标记进行标识。但是在确定“String TAG”后确保隐藏它们
这不是推荐的解决方案,但它可以提供帮助。
答案 1 :(得分:0)
我认为你只能通过使用标签来识别它们。
也许您可以使用1000,2000,3000作为类型,使用1,2,3来识别。
因此标签1001是类别1000中的第一个,1100是类别1000中的第100个等...
答案 2 :(得分:0)
如果您已创建,也可以将UITextField与其插座进行比较。您可以将字符串标识符分配给textFields,如下所示
#import <objc/runtime.h>
static char kTextFieldAssociatedKey;
objc_setAssociatedObject(yourTextField,
&kTextFieldAssociatedKey,
aStrKey,
OBJC_ASSOCIATION_RETAIN_NONATOMIC);
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
NSString *aStrKey = objc_getAssociatedObject(textField, &kTextFieldAssociatedKey);
objc_removeAssociatedObjects(textField);
NSLog(@"%@", aStrKey);
return [textField resignFirstResponder];
}
答案 3 :(得分:0)
识别没有Tag的文本字段的另一种方法是
NSArray *arySubViews=[self.view subviews];
for (int i=0;i<arySubViews.count; i++){
id subObj= [arySubViews objectAtIndex:i];
if ([subObj isKindOfClass:[UITextField class]]) {
/// At this place you identify your Text Field without tag
// you can identify through Title or etc.
UITextField *tfObj=(UITextField*)subObj;
}
}