2011-08-18 11 views
6

iPadのキーボードの上にUITextFieldを表示しようとしています。iPadのキーボードの高さの変更の通知

通知があったときにキーボードの高さを知ることができました。

しかし、iPadの場合、キーボードの言語入力を変更することで、日本語の可能性が最も高くなります。キーボードの上にテキスト仮説領域が表示されたため、キーボードの高さが変わったため、UITextfieldがその地域....

高さをどのように変更することができます通知や他の方法を知って誰ですか?

+0

[k eyboardがUITextFieldまたはUITextViewのために現れる](http://stackoverflow.com/questions/402658/adjusting-interface-when-keyboard-appears-for-uitextfield-or-uitextview) – jtbandes

+1

私は私のビューのサイズを変更しましたが、 iPadでは、キーボードの言語に応じて、高さが変更されました。キーボードがすでに見えるので、キーボードの高さが変わったときには通知がないようです。 – rae148

+0

本当ですか?私はすべてのキーボードが同じ高さだと思った。 – jtbandes

答えて

2

答えは、言語を切り替えると、変更ごとにUIKeyboardDidShowNotificationが発生するため、常に更新された高さが得られます。

See my answer here表示と非表示の応答を設定し、高さを取得する方法については、

1

スウィフト

UIKeyboardDidShowNotificationはもうキーボードのサイズの変更を発生しません。

使用UIKeyboardWillChangeFrameNotification代わり:

機能で
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(instance.keyboardWillChange(_:)), name:UIKeyboardWillChangeFrameNotification, object: nil) 

:キーボードが開き、非表示になり、UIKeyboardWillShowNotificationUIKeyboardWillHideNotificationの両方を置き換えることができたときに、このイベントも起動されます:

let targetSize = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.CGRectValue() 

重要サイズのみが必要な場合