第二次点击后出现文本字段的键盘(不时)
Keyboard for textfield appears after second tap (time to time)
我的应用程序中有一个视图,其中有 1 个文本字段。我注意到第二次点击后会出现键盘。
但有趣的是,在 iPhone 上它有时会出现(有时在第一次点击后出现,有时仅在第二次点击后出现)。
在 iPad 上,它更经常出现在第二次点击后。
我用UITextFieldDelegate
在viewDidLoad
我分配委托_locationTextField.delegate = self;
并且我使用委托方法 textFieldDidBeginEditing
、textFieldDidEndEditing
、textFieldShouldReturn
例如:
#pragma mark -
#pragma mark UITextFieldDelegate
- (void)textFieldDidBeginEditing:(UITextField *)textField {
_locationNameBeforeManualEdit = _locationTextField.text;
// save the previod city value to compare after did end editing
NSLog(@"textFieldDidBeginEditing");
}
- (void)textFieldDidEndEditing:(UITextField *)textField{
NSLog(@"textFieldDidEndEditing");
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[self continueButtonPressed:nil];
// [textField resignFirstResponder];
return YES;
}
在情节提要中
可能是什么问题?
在 Whosebug 上找到解决方案 - 与键盘预加载相关的解决方案:
- (void)preloadKeyboard {
UITextField *lagFreeField = [[UITextField alloc] init];
[self.window addSubview:lagFreeField];
[lagFreeField becomeFirstResponder];
[lagFreeField resignFirstResponder];
[lagFreeField removeFromSuperview];
}
这个方法应该用在AppDelegate
的application: didFinishLaunchingWithOptions:
方法中。
我的应用程序中有一个视图,其中有 1 个文本字段。我注意到第二次点击后会出现键盘。
但有趣的是,在 iPhone 上它有时会出现(有时在第一次点击后出现,有时仅在第二次点击后出现)。 在 iPad 上,它更经常出现在第二次点击后。
我用
UITextFieldDelegate
在
viewDidLoad
我分配委托_locationTextField.delegate = self;
并且我使用委托方法
textFieldDidBeginEditing
、textFieldDidEndEditing
、textFieldShouldReturn
例如:
#pragma mark -
#pragma mark UITextFieldDelegate
- (void)textFieldDidBeginEditing:(UITextField *)textField {
_locationNameBeforeManualEdit = _locationTextField.text;
// save the previod city value to compare after did end editing
NSLog(@"textFieldDidBeginEditing");
}
- (void)textFieldDidEndEditing:(UITextField *)textField{
NSLog(@"textFieldDidEndEditing");
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[self continueButtonPressed:nil];
// [textField resignFirstResponder];
return YES;
}
在情节提要中
可能是什么问题?
在 Whosebug 上找到解决方案 - 与键盘预加载相关的解决方案:
- (void)preloadKeyboard {
UITextField *lagFreeField = [[UITextField alloc] init];
[self.window addSubview:lagFreeField];
[lagFreeField becomeFirstResponder];
[lagFreeField resignFirstResponder];
[lagFreeField removeFromSuperview];
}
这个方法应该用在AppDelegate
的application: didFinishLaunchingWithOptions:
方法中。