嘿有没有人知道如何做以下事情: [(NSString)becomeFirstResponder]; (其中NSString就是文本字段名称所在的位置)。 任何帮助赞赏。 感谢
答案 0 :(得分:0)
[(NSString) becomeFirstResponder];
会导致异常。
使用
[textField becomeFirstResponder];
使您的文本字段成为第一响应者。
其中textField
是UITextField
的实例。确保您已为此分配了IBoutlet。
答案 1 :(得分:0)
如果相应的视图控制器具有指向文本字段的实例变量或声明的属性(例如IBOutlet
),您可以尝试:
UIViewController *containerViewController;
NSString *fieldName = @"someFieldName";
id field = [containerViewController valueForKey:fieldName];
if ([field isKindOfClass:[UITextField class]])
[(UITextField *)field becomeFirstResponder];
请记住,Cocoa Touch有一个标记机制,可用于从整个视图层次结构获取特定子视图,而不管IB出口,实例变量或声明的属性。标记是整数可以通过Interface Builder或以编程方式设置,通常每个表示标记的整数都有一个常量。例如:
static const NSInteger kFirstNameTextFieldTag = 42;
UIView *containerView;
field = [containerView viewWithTag:kFirstNameTextFieldTag];
if ([field isKindOfClass:[UITextField class]])
[(UITextField *)field becomeFirstResponder];
您可以对此进行扩展,以将字段名称(字符串)映射到相应的标记,然后使用该标记获取特定字段。