我面临着有史以来最奇怪的错误(我的应用程序或 IOS 7.1 中的以太)。几个小时后,我设法创建了一个简单的应用程序来演示这个问题。
两个 UITextField - 从界面生成器拖放并连接到 t1、t2。视图控制器:
@implementation ViewController
@synthesize t1;
@synthesize t2;
#pragma mark - UITextFieldDelegate
-(void)textFieldDidBeginEditing:(UITextField *)iTextField {
NSLog(@"textFieldDidBeginEditing");
[iTextField performSelector:@selector(selectAll:) withObject:iTextField afterDelay:0.0];
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
return YES;
}
- (void)viewDidLoad
{
[super viewDidLoad];
t1.delegate = self;
t2.delegate = self;
}
@end
当同时点击 t1 和 t2 时,两个 textField 都会成为无限循环中的第一响应者!当省略执行选择器语句或 textField:shouldChangeCharactersInRange: 实现时,问题就消失了。
有人可以解释为什么会这样吗?