Мне нужно отслеживать, какое текстовое поле является первымResponder для моей пользовательской клавиатуры для работы. В приведенном ниже коде, я грубо упрощать свою программу, но вот суть проблемы:Отслеживание объекта 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;
}
Если удалить устанавливающее firstResponder к нулю линии, код перестает функционировать должным образом, но я не являюсь Конечно, почему. (Без этой строки я могу выбрать первый textView для вызова клавиатуры, но после этого я никогда не смогу вернуть клавиатуру. Любые идеи? Спасибо!
Вы потрясающий !!! Это была моя точная проблема. –