J'ai besoin de savoir quel champ de texte est le premier répondeur pour que mon clavier personnalisé fonctionne. Dans le code ci-dessous, j'ai grossièrement trop simpliste mon programme, mais est ici l'essentiel du problème:Suivi de l'objet firstResponder
@implementation SimplePickerViewController
@synthesize pickerKeyboard;
@synthesize textView;
@synthesize textView2;
@synthesize firstResponder;
-(void)viewDidLoad{
pickerKeyboard = [[PickerKeyboardViewController alloc] initWithNibName:@"PickerKeyboard" bundle:nil];
pickerKeyboard.delegate = self;
[self.textView setInputView:pickerKeyboard.view];
[self.textView setDelegate:self];
[self.textView2 setInputView:pickerKeyboard.view];
[self.textView2 setDelegate:self];
}
-(void)hideKeyboard{
[self.firstResponder resignFirstResponder];
self.firstResponder = nil; //without this line, the code doesn't work.
}
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView{
self.firstResponder = textView;
[self.pickerKeyboard.picker reloadAllComponents];
return YES;
}
Si je supprime la ligne de réglage du firstResponder à zéro, le code cesse de fonctionner correctement, mais je ne suis pas Bien sûr pourquoi. (Sans cette ligne, je peux sélectionner le premier textView pour faire apparaître le clavier, mais après je ne pourrai jamais ramener le clavier.) Des idées? Merci!
Vous êtes génial !!! C'était mon problème exact. –