Сначала я создаю подкласс 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 не может появиться автоматически? Заранее спасибо!!!