まず、MyTextEditorView という名前の UIView をサブクラス化し、inputAccessoryView を readwrite プロパティとして上書きします。
@property (retain, readwrite) UIView *inputAccessoryView;
そして、UIInputView を表示ビューとして初期化し、1 つの UIView をサブビューとして追加します。
UIInputVIew *myInputAccessoryView = [[UIInputView alloc] initWithFrame:CGRectMake(0,0,screenWidth,44)];
[myInputAccessoryView addSubview:myDisplayView];
[self setInputAccessoryView:myInputAccessoryView];
[self reloadInputViews];
そして、YES を返すために canBecomeFirstResponder をオーバーライドしました;</p>
- (BOOL)canBecomeFirstResponder
{
return YES;
}
最初に myTextEditorView を viewController1 で初期化してファーストレスポンダーにすると、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が自動的に表示されない理由を誰かが私に提起するのを助けることができますか?事前に感謝!!!