inputAccessoryView не появляется автоматически после вызова reloadInputViews

Сначала я создаю подкласс UIView с именем MyTextEditorView для перезаписи его inputAccessoryView как свойства для чтения.

@property (сохранение, чтение и запись) UIView *inputAccessoryView;

И я инициализирую UIInputView как вид отображения, а затем добавляю один UIView как подвид;

UIInputVIew *myInputAccessoryView = [[UIInputView alloc] initWithFrame:CGRectMake(0,0,screenWidth,44)];

[myInputAccessoryView addSubview:myDisplayView];

[self setInputAccessoryView:myInputAccessoryView];

[self reloadInputViews];

И я переопределил canBecomeFirstResponder для возврата YES;

- (BOOL)canBecomeFirstResponder
{
     return YES;
}

Когда я впервые инициализирую MyTextEditorView в своем viewController1 и делаю его первым ответчиком, автоматически появляется inputAccessoryView. Но когда я нажимаю другой viewController2 из этого viewController1 и обратно в viewController1, inputAccessoryView не будет автоматически появляться после того, как он станет первым ответчиком.

Однако, когда я добавляю следующий код:

    UIInputVIew *myInputAccessoryView = [[UIInputView alloc]  initWithFrame:CGRectMake(0,0,screenWidth,44)];

[myInputAccessoryView addSubview:myDisplayView];

[self setInputAccessoryView:myInputAccessoryView];

[self resignFirstResponder];

[self reloadInputViews];

[self becomeFirstResponder];

После этого этот inputAccessoryView может автоматически появиться в любом случае. Но это меня смутило, и кто-нибудь может помочь мне поднять, почему inputAccessoryView не может появиться автоматически? Заранее спасибо!!!


person Sera    schedule 14.09.2015    source источник
comment
У меня есть то, что меня смутило. Этот inputAccessoryView появляется автоматически первым, но не работает нормально после того, как я покажу UIActionSheet в представлении этого viewController. Моя тестовая платформа — iOS 8.3! Может быть, это причина того, что меня смутило   -  person Sera    schedule 15.09.2015


Ответы (1)


Я тестирую этот вопрос как на iOS7, так и на iOS8. И я считаю, что это ошибка iOS8. После того, как я заменил UIActionSheet на UIAlertController на платформе iOS8, это работает хорошо. Я предполагаю, что UIActionSheet как подкласс UIView отличается от UIAlertController как подкласса UIViewController, который может конфликтовать с моим редактором.

person Sera    schedule 16.09.2015