我用过:
IBOutlet UITextField *text1, *text2;
用于引用我的文本字段。
我使用以下方法清除每一个:
[text1 setText:@""];
[text2 setText:@""];
如果我想使用for循环一次清除所有内容,我该如何编写代码?
答案 0 :(得分:4)
您应为每个textField分配标记(例如1,2)。
然后您的代码应如下所示:
for(int i=1; i<=2;i++)
{
UITextField *tf=(UITextField *)[self.view viewWithTag:i];
[tf setText:@""];
}
答案 1 :(得分:0)
如果要对文本字段使用属性,可以执行以下操作:
for (int textFieldIndex = 0; textFieldIndex < textFieldCount; textFieldIndex++)
{
NSString *textFieldName = [NSString stringWithFormat:@"text%i", textFieldIndex];
UITextField *textField = [self performSelector(NSSelectorWithString(textFieldName))];
[textField setText:@""];
}
定义属性:
@interface viewController : NSObject
{
UITextField *_text1;
...
}
@property(readwrite, assign) IBOutlet UITextField *text1;
...
@end
@implementation
...
@synthesize text1 = _text1;
...
@end
您可以命名ivar text1
并使用@synthesize text1;
我使用前缀来避免在方法中意外覆盖实例ivar。此外,您可能希望使用retain
代替assign
。
答案 2 :(得分:0)
for (UIView *aSubview in self.subviews) {
if ([aSubview isKindOfClass:[UITextField class]])
[(UITextField *)aSubview setText:nil];
}
答案 3 :(得分:0)
部首:
IBOutlet UITextField *text1, *text2;
NSArray *textFields;
初始化:
textFields = [NSArray arrayWithObjects: text1, text2, nil];
设置空文本:
for(UITextField *text in textFields) {
[text setText: @""];
}