4

У меня есть два текстовых изображения в виде подсмотров UITableView с inputAccessoryView, который не редактируется, но я все же хотел бы, чтобы люди выделяли и использовали (копировать | определять), а еще один, который находится внутри inputAccessoryView.подсветка uitextview показывает inputAccessoryView

Проблема заключается в том, что при подсветке не редактируемого textView появляется вид вспомогательного аксессуара ... (почему !?), как будто tableView неожиданно стал первым ответчиком, я предполагаю, что одно из его подзонов стало первым ответчик. Вопрос в том, должен ли я взять этот не редактируемый textView из подпрограмм tableViews или есть какой-то способ подавить появление InputAccessoryView, когда он подсвечен? Последнее предпочло бы.

-(UITextView *)textView 
{ 
    if (!_textView) { 

     _textView = [[UITextView alloc]initWithFrame:CGRectZero]; 
     //_textView.delegate = self; 
     _textView.font = [UIFont questionDemiBoldFontOfSize:36.0f]; 
     _textView.backgroundColor = [UIColor clearColor]; 
     _textView.editable = NO; 
     _textView.scrollEnabled = NO; 
     _textView.textColor = [UIColor whiteColor]; 
     _textView.tintColor = [UIColor whiteColor]; 
     _textView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin; 

    } 

    return _textView; 
} 
+0

Вы смогли это решить? Ни одно из решений ниже не работало для меня. – Joey

+0

'return nil;' когда это рассматриваемый textView действительно работает для меня. Извините, если это не подходит для вас. – Magoo

ответ

0

Я установил, добавив

- (UIView *)inputAccessoryView 
{ 
    if (self.textView.isFirstResponder) 
     return nil; 

    return self.accessoryView; 
} 

примечание Очевидно, что в некоторых случаях, возможно, придется вручную вызвать resignFirstResponder на не редактирования TextView первых, прежде чем ваш accessoryView назад .. до сих пор, это достаточно чисты и могут помочь кому-то в будущем.

1

Это работало для меня в подклассе UITextView. Свифт 4

override func becomeFirstResponder() -> Bool { 
    guard isEditable else { return false } 
    return super.becomeFirstResponder() 
} 
Смежные вопросы