Stiamo osservando un comportamento insolito rispetto a Keyboard willshow & nasconde la notifica su iOS 8.3.Notifiche della tastiera iOS attivate inutilmente in caso di visualizzazione dell'avviso su iOS8.3
Il viewcontroler (per l'ascolto delle notifiche sulla tastiera) ha un file di testo e, dopo aver fatto clic e toccando il pulsante di invio, il metodo innanzitutto si dimette dal primo risponditore dal campo di testo e mostra un avviso per avvisare. Tutto funziona bene, chiude la tastiera e mostra l'avviso come previsto. (chiama anche il metodo UIKeyboardWillHideNotification).
Tuttavia, il 8.3, dopo avere toccato OK/Annulla sul Alertview delegato, ha respinto l'allarme e richiama UIKeyboardWillShowNotification & UIKeyboardWillHideNotification, rispettivamente, anche se non doveva essere chiamato! Non era previsto, poiché la tastiera era già stata scaricata prima di inviare l'avviso!
Ecco il frammento di codice, che stiamo cercando:
- (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");
}
Questo comportamento sta causando problemi nella nostra applicazione, quando ci sono cascata avvisi attivati dal precedente delegato alertview'd - fanalino la tastiera in situazioni non necessarie.
Qualsiasi aiuto/consiglio è molto apprezzato!
Avete bisogno supportare versioni inferiori a 8? Altrimenti, UIAlertView è deprecato e potresti avere più successo con [UIAlertController] (https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIAlertController_class/) – Yaser
Sì @Yaser, stiamo supportando iOS7 pure! – My3