Мы наблюдаем необычное поведение в отношении того, что клавиатура будет показывать и скрывать уведомления на iOS 8.3.
Контроллер просмотра (прослушивающий уведомления клавиатуры) имеет текстовое поле, и при нажатии и нажатии кнопки отправки метод сначала удаляет первого ответчика из текстового поля и показывает предупреждение, чтобы сообщить предупреждение. Все работает нормально, клавиатура отключается и появляется оповещение, как и ожидалось. (также вызывает метод UIKeyboardWillHideNotification).
Однако в версии 8.3, после нажатия OK/Отмена делегата Alertview, он отклоняет предупреждение и вызывает UIKeyboardWillShowNotification и UIKeyboardWillHideNotification соответственно, хотя это не должно было вызываться! Этого не ожидалось, так как клавиатура уже была убрана до отображения предупреждения!
Here is the code snippet, that we are trying:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
}
- (IBAction)ShowAlert:(id)sender {
[self.TxtField resignFirstResponder];
//This woudln't make any diff either :(
[self.view endEditing:YES];
[self ShowAlertForTest];
}
-(void)ShowAlertForTest{
UIAlertView *theAlertView= [[UIAlertView alloc]initWithTitle:@"Title"
message:@"msg"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Yes", nil];
[theAlertView show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"buttonIndex = %ld",buttonIndex);
}
- (void)keyboardWillShow:(NSNotification *)aNotification
{
NSLog(@"keyboardWillShow");
}
- (void)keyboardWillHide:(NSNotification *)aNotification
{
NSLog(@"keyboardWillHide");
}
Это поведение вызывает проблемы в нашем приложении, когда из предыдущего делегата alertview запускаются каскадные оповещения, вызывающие клавиатуру в ненужных ситуациях.
Любая помощь/совет приветствуется!