2012-04-05 15 views
1

私はツールバーでナビコントローラを持っています。キーボードが現れたときに、ツールバーをキーボードの上に表示させました。キーボードを閉じるとツールバーが消え、画面の下部に黒い四角形が残されます。ちょうどツールバーがキーボードなしの場所になければなりません。ここでキーボードを隠すとツールバーが消える

は、私は、ツールバーを初期化方法は次のとおりです。

- (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.superviewnilであることがわかりました。

+0

もう一度 'self.navigationController.toolbar'を(キーボードなしで)ビューに追加してみてください。 – tipycalFlow

+0

試してみると動作しません。ツールバー:(1)が画面上部に表示され、(2)が1秒間隔でもう一度消えます。私は '[self.view addSubview:self.navigationController.toolbar]'を試しました。 – Macondo2Seattle

+0

ツールバーを視認性から移動したようです。Plsはバーチャルキーボードの上にツールバーを移動するコードと、キーボードを隠すコードを掲示します。キーボードが隠された後、 'NSLog'ツールバーのフレームを試すことができます – tipycalFlow

答えて

0

問題ありませんでしたが、私は問題を正面から解決できませんでしたが、私は受け入れ可能な回避策を見つけました。

  1. オブジェクトに(1)からツールバーには、テキストフィールド

  2. inputAccessoryViewプロパティにそのオブジェクトを割り当てるツールバー

  3. ロード用.xibを作成します。このツールバーのターゲットとアクションを設定して、クリックに応答できるようにします。

これですべての設定が完了しました。元のツールバー(Interface Builderで作成したものと思われる)は、キーボードが隠されている場合にのみ表示されます。キーボードが表示されているときは、元のツールバーは表示されませんが、上記の手順で作成された他のツールバーはキーボードの上に表示されます。ビンゴ!

誰もがこの問題へのよりエレガントな解決策を持っている場合、私はそれを聞いて幸せになると思います:)

+0

これらの2つのツールバーの間で同期が必要なときは問題です。 – BollMose

1

@BlackRider、私はあなたとまったく同じ問題に遭遇しました。それはかなり迷惑です。

2つの異なる場所でツールバーボタンの状態を処理したくないので、回避策として2つの異なるツールバーを設定したくありませんでした。

私は、通知を使用しての回答で、ここで議論したアプローチを使用してに頼ってきました:それはOK働いてiPhone: How to fix inputAccessoryView to View?

- 私の腸の反応は、様々なデバイスサイズ/方向にしようとしたとき、私は問題にぶつかるだろうということです。

関連する問題