私はツールバーでナビコントローラを持っています。キーボードが現れたときに、ツールバーをキーボードの上に表示させました。キーボードを閉じるとツールバーが消え、画面の下部に黒い四角形が残されます。ちょうどツールバーがキーボードなしの場所になければなりません。ここでキーボードを隠すとツールバーが消える
は、私は、ツールバーを初期化方法は次のとおりです。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController setToolbarHidden:NO];
// this makes sure the toolbar appears on top of the keyboard
// instead of going below it.
// _nameText is a UITextField
_nameText.inputAccessoryView = self.navigationController.toolbar;
}
これは私がキーボードを隠す方法です:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
[self.navigationController setToolbarHidden:NO]; // this doesn't help
return NO;
}
私も[self.view setNeedsLayout]
をやってみましたが、それは動作しませんでした。
編集:これは、私のテキストフィールドの入力アクセサリビューにツールバーを割り当てるという事実と関係があると思われます。私は、キーボードが消えたときにテキストフィールドがアクセサリビューを隠していると思います。私はまだその動作を無効にする方法を知らない。
編集2:キーボードがなくなった後にself.navigationController.toolbar.superview
がnil
であることがわかりました。
もう一度 'self.navigationController.toolbar'を(キーボードなしで)ビューに追加してみてください。 – tipycalFlow
試してみると動作しません。ツールバー:(1)が画面上部に表示され、(2)が1秒間隔でもう一度消えます。私は '[self.view addSubview:self.navigationController.toolbar]'を試しました。 – Macondo2Seattle
ツールバーを視認性から移動したようです。Plsはバーチャルキーボードの上にツールバーを移動するコードと、キーボードを隠すコードを掲示します。キーボードが隠された後、 'NSLog'ツールバーのフレームを試すことができます – tipycalFlow