私はこれまでで最も奇妙なバグ (私のアプリまたは IOS 7.1 のイーサ) に直面しています。何時間もかけて、問題を示す簡単なアプリを作成することができました。
2 つの 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 を同時にタップすると、両方の textFields がエンドレス ループでファーストレスポンダーになります! PerformSelector ステートメントまたは textField:shouldChangeCharactersInRange: 実装を省略すると、問題はなくなります。
誰かがなぜそれが起こるのか説明できますか?