За последние несколько дней я столкнулся со странной проблемой 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];
}
}
Теперь, когда я получаю ответ Success/Failure от сервера, я делаю это. Это блок, который запускается после получения ответа от сервера:
-(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 и нажимаю "ОК". Затем клавиатура открывается и закрывается автоматически. Это происходит только с iPhone 5C. Проверял на 4s,5s,6 и 6Plus. Все работают нормально.
Если кто-нибудь знает об этом, пожалуйста, помогите.