2011-08-18 91 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将不会触发了键盘的尺寸变化。在功能

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

使用UIKeyboardWillChangeFrameNotification代替

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

重要:此事件也将被解雇时,键盘将打开,并会隐藏,可以同时替换UIKeyboardWillShowNotificationUIKeyboardWillHideNotification如果只需要尺寸