От последните няколко дни се сблъсквам със странен keyboard
проблем, който се случва само в iPhone 5c
.
Използвам objective-C
за разработка в Xcode-6.4
Моята цел за околната среда е ios7
.
Ето как се справям с keyboard Notification
.
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}
До Deregister Notification
пиша тази част от кода. За да съм сигурен, използвам -resignFirstResponder
за всяко текстово поле.
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self hideKeyBoard];
[self.view endEditing:YES];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}
- (void)hideKeyBoard{
[kAgeTextField resignFirstResponder];
[kSchoolTextField resignFirstResponder];
}
И в бутона за изпращане съм проверил някакво условие и след това показвам AlertView
.
- (IBAction)submitClicked:(id)sender
{
if(validated)
{
[self.view endEditing:YES];
[self hideKeyBoard];
[self.view resignFirstResponder];
[self makeApiCall];
}
}
Сега, когато получа отговор за успех/неуспех от сървъра, правя това. Това е блокът, който се изпълнява след получаване на отговор от сървъра:
-(void)SuccessfulWithServerInfo:(id)responseInfo
{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
dispatch_async(dispatch_get_main_queue(),^{
[appDelegate hideProgressViewFromView:self.view];
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"Thanks for coming" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
[self.navigationController popToRootViewControllerAnimated:YES];
});
}
Проблем Когато получа alertBox и натисна OK. След това клавиатурата се отваря и затваря автоматично. Това се случва само с iPhone 5C. Проверих го в 4s, 5s, 6 и 6Plus. Всички работят добре.
Ако някой знае за това, моля да помогне.