My ViewController
реализует UITextView
метод делегирования textViewDidChangeSelection
. Все работает так, как ожидалось, при тестировании. Однако, если приложение помещается в фоновом режиме, а затем снова становится активным, метод делегирования не вызывается при изменении выбора в TextView
. Кто-нибудь еще, у кого была эта проблема?UITextView метод делегата textViewDidChangeSelection не получает вызов при возврате из фона
Мой UITextView
подкласс делает это:
self.inputView = [[UIView alloc] initWithFrame:CGRectZero];
Выше для того, чтобы клавиатура не показывать, но в то же время сохраняя включен TextView.
подкласс также делает это:
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender{
{
if ([UIMenuController sharedMenuController])
{
[UIMenuController sharedMenuController].menuVisible = NO;
}
return NO;
}
Это делается для того, чтобы не показать копию пасты всплывал при нажатии UITextView. Я думаю, что этот метод выглядит немного странно, но я нашел его на SO некоторое время назад, и он сделал то, что должен.
Возможно, ваш контроллер просмотра выпущен на фоне и воссоздан при входе на передний план. Тогда textView.delegate будет нулевым. Можете ли вы проверить это? –
Я протестировал, если он был ноль в методе didBecomeActive appDelegate, это не так. Я также проверил снова установку ViewController в качестве делегата в этом методе. – empee
Возможно, ваш textView станет нулевым. Попробуйте установить делегат в viewDidAppear: например. –