4

Apple のネイティブ メッセージ アプリのように、常にキーボードの上にあるツールバーを作成しようとしています。iPad でそのアプリを詳しく見る場合は、キーボードのドッキングを解除し、右下のボタンを押したままドラッグしてみてください。Apple のツールバーがキーボードの位置を非常にうまく追跡していることに気付くでしょう。

その動作を再現しようとして、keyboard-will-change-frame 通知と keyboard-did-change-frame 通知の両方を購読しました。しかし、残念なことに、最初の通知はユーザーがドラッグを開始したときに送信され、後者はキーボードが最終的な位置にスナップしたときに送信されましたが、その間に送信された通知はありませんでした。何か不足していますか?これが私が話していることです:

これは、通知をサブスクライブするために使用するコードです。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidChangeFrame:) name:UIKeyboardDidChangeFrameNotification object:nil];

これらは私のリスナー関数です:

- (void)keyboardWillChangeFrame:(NSNotification *)notification{

    NSLog(@"will change");
    // [self alignToolbarForKeyboard:notification action:@"will_change_frame"];

}

- (void)keyboardDidChangeFrame:(NSNotification *)notification{

    NSLog(@"did change");
    // [self alignToolbarForKeyboard:notification action:@"did_change_frame"];

}

両方のリスナー関数の呼び出しをコメントアウトして、何もブロックしていないことを確認しました。知らない通知タイプはありますか? 私は UIWindow リファレンスを見ましたが、既に持っている以上のものは見つかりませんでした。念のため、移動中に表示/非表示の通知が送信されるかどうかも確認しました。そうではありません。

何か案は?ありがとう!

4

0 に答える 0