Я знаю, что это не точный ответ на этот вопрос, но я нашел эту ветку после поиска в интернете ответа. Я предполагаю, что другие разделяют это чувство.
Это мое отличие UITapGestureRecognizer, которое я считаю надежным и простым в использовании - просто установите делегат TextView на ViewController.
Вместо ViewDidLoad я добавляю UITapGestureRecognizer, когда TextView становится активным для редактирования:
-(void)textViewDidBeginEditing:(UITextView *)textView{
_tapRec = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)];
[self.view addGestureRecognizer: _tapRec];
NSLog(@"TextView Did begin");
}
Когда я нажимаю вне TextView, представление завершает режим редактирования, и UITapGestureRecognizer удаляет себя, чтобы я мог продолжить взаимодействие с другими элементами управления в представлении.
-(void)tap:(UITapGestureRecognizer *)tapRec{
[[self view] endEditing: YES];
[self.view removeGestureRecognizer:tapRec];
NSLog(@"Tap recognized, tapRec getting removed");
}
Надеюсь, это поможет. Это кажется очевидным, но я никогда не видел такого решения в Интернете - я что-то не так делаю?