Chúng tôi đang quan sát hành vi bất thường liên quan đến Bàn phím willshow & sẽ ẩn thông báo trên iOS 8.3.Thông báo bàn phím iOS được kích hoạt không cần thiết khi hiển thị cảnh báo trên iOS8.3
Bộ kiểm soát xem (nghe thông báo bàn phím) có văn bản và khi nhấp và sau khi nhấn nút gửi, phương thức đầu tiên từ chối trả lời đầu tiên từ trường văn bản và hiển thị cảnh báo để thông báo cảnh báo. Mọi thứ hoạt động tốt, nó loại bỏ bàn phím và hiển thị cảnh báo như mong đợi. (cũng gọi phương thức UIKeyboardWillHideNotification).
Tuy nhiên, trên 8.3, sau khi chạm vào OK/Cancel trên Alertview đại biểu, nó bác bỏ cảnh báo và nó gọi lên UIKeyboardWillShowNotification & UIKeyboardWillHideNotification tương ứng, mặc dù nó không được nghĩa vụ phải được gọi là! Điều này đã không được mong đợi, như bàn phím đã được bác bỏ trước khi dispalying cảnh báo!
Dưới đây là đoạn mã, mà chúng ta đang cố gắng:
- (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");
}
Hành vi này gây ra sự cố trong ứng dụng của chúng tôi, khi có được tầng cảnh báo được kích hoạt từ các đại biểu alertview'd trước - đưa lên bàn phím trong các tình huống không cần thiết.
Bất kỳ trợ giúp/lời khuyên nào được đánh giá cao!
Bạn có cần để hỗ trợ các phiên bản thấp hơn 8? Nếu không, UIAlertView bị phản đối và bạn có thể có nhiều thành công với [UIAlertController] (https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIAlertController_class/) – Yaser
Có @Yaser, chúng tôi đang hỗ trợ iOS7 quá! – My3