首先,我将 UIView 子类化为 MyTextEditorView 以覆盖它的 inputAccessoryView 作为读写属性。
@property (retain, readwrite) UIView *inputAccessoryView;
我将 UIInputView 初始化为显示视图,然后添加一个 UIView 作为子视图;
UIInputVIew *myInputAccessoryView = [[UIInputView alloc] initWithFrame:CGRectMake(0,0,screenWidth,44)];
[myInputAccessoryView addSubview:myDisplayView];
[self setInputAccessoryView:myInputAccessoryView];
[self reloadInputViews];
而且我已经覆盖了 canBecomeFirstResponder 以返回 YES;</p>
- (BOOL)canBecomeFirstResponder
{
return YES;
}
当我第一次在我的 viewController1 中初始化 MyTextEditorView 并使其成为第一响应者时,inputAccessoryView 会自动出现。但是当我从这个 viewController1 推送另一个 viewController2 并返回 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不能自动出现?提前谢谢!