使用最新的iOS 8.3版本,我们的应用程序开始出现奇怪的行为.
完成文本字段编辑后,用户可以单击关闭按钮,显示一个UIAlertView.当用户在alertview中单击discard时,将取消alertview和当前视图.但不知何故,键盘在视图消失后显示出来,这对用户来说非常烦人.
经过一些调试后,似乎键盘显示的是用户在关闭视图之前访问过的最后一个文本字段.我endEditing在许多地方尝试了各种方法来获取当前视图(在显示之前UIAlertView,单击按钮之后UIAlertView;我甚至将焦点设置为视图的另一个UI元素).它没有解决问题.
但对于这个特殊问题,我不确定这是一个常见问题还是我们需要解决的问题.一切都在iOS 8.3之前完美运行.
我们知道UIAlertViewiOS 8已弃用.我们已开始迁移到UIAlertController.但如果有任何解决方法,我们很乐意听到.
这是一些代码片段.
- (IBAction)closeTapped:(UIButton *)sender
{
// try to resign first responder
// [self.tfName resignFirstResponder];
// [self.tfPosition resignFirstResponder];
[self.view endEditing:YES];
if(self.orderDetails.isOpen && self.orderItemChanged)
{
UIAlertView* saveAlert = [[UIAlertView alloc] initWithTitle:@"Unsaved Changes"
message:@"Your changes have not been saved. Discard changes?"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Save", @"Discard", nil];
[saveAlert show];
}
else
{
[self close];
}
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
switch(buttonIndex) …Run Code Online (Sandbox Code Playgroud)