【发布时间】:2016-04-20 06:04:07
【问题描述】:
【问题讨论】:
-
您可以使用文本字段委托来检测用户是否输入了表情符号。见This question。
-
@EICaptain 我相信他的问题不是设置偏移量(他通过简单的文本输入来做到这一点)。他在处理表情符号输入时遇到问题,因此他想从键盘检测 输入类型
【问题讨论】:
不要使用UIKeyboardDidShowNotification/UIKeyboardDidHideNotification 观察者,而是使用UIKeyboardWillChangeFrameNotification 观察者,它会触发每个事件:键盘隐藏、键盘显示和键盘更改框架。
像这样:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(keyboardAction), name: UIKeyboardWillChangeFrameNotification, object: nil)
【讨论】:
您可以使用键盘通知
func getKeyboardHeight() {
let defaultCenter = NSNotificationCenter.defaultCenter()
defaultCenter.addObserver(self, selector: "keyboardWillChangeFrame:", name: UIKeyboardWillChangeFrameNotification, object: nil)
}
func keyboardWillChangeFrame(notification : NSNotification){
let keyboardFrame = (notification.userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue()
let keyboardheight = keyboardFrame.height
}
您可以根据获得的高度调整文本字段的框架。 看图片。 选择表情符号之前的图像 1。
选择表情符号后的图像 2
【讨论】:
感谢大家的帮助,我找到了答案: 我正在使用这条线:
if let keyboardSize = (notifcation.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue().size{
我将notifcation.userInfo的key-value改为UIKeyboardFrameEndUserInfoKey,问题就解决了。
【讨论】: