キーボードの変化に応じて、iPhoneのキーボードの高さを取得
983 ワード
キーボードの高さは変わります.例えば、中国語入力方式に切り替えると、キーボードの上に候補文字領域が1つ増えます.
したがって、ユーザ入力シーンでは、レイアウトの美しさと可用性がキーボードの高さの変化の影響を受ける可能性があるため、キーボードの高さに動的に適応する必要がある.
解決策は
1.アイテムに、キーボードの呼び出しイベントをリスニングするメッセージを追加します.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:
UIKeyboardWillChangeFrameNotification object:nil];
2.キーボードの高さに適応する:
- (void)keyboardWillShow:(NSNotification *)notification
{
NSDictionary *info = [notification userInfo];
//kbsize.widthはキーボード幅kbsize.heightはキーボード高さ
CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
//適応コード、すなわちビューの高さを移動するコード
......
}
3.観察者を除去します.
キーボードオン/オフメッセージの登録
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillChangeFrameNotification object:nil];
したがって、ユーザ入力シーンでは、レイアウトの美しさと可用性がキーボードの高さの変化の影響を受ける可能性があるため、キーボードの高さに動的に適応する必要がある.
解決策は
1.アイテムに、キーボードの呼び出しイベントをリスニングするメッセージを追加します.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:
UIKeyboardWillChangeFrameNotification object:nil];
2.キーボードの高さに適応する:
- (void)keyboardWillShow:(NSNotification *)notification
{
NSDictionary *info = [notification userInfo];
//kbsize.widthはキーボード幅kbsize.heightはキーボード高さ
CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
//適応コード、すなわちビューの高さを移動するコード
......
}
3.観察者を除去します.
キーボードオン/オフメッセージの登録
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillChangeFrameNotification object:nil];