iOS 8.2及以上版本都能正常运行.
但是当您更改键盘语言时如何处理事件?当您将英文键盘更改为表情符号键盘时,表情符号键盘(在ios 8.3中)的高度较大,会隐藏内容.
或者也许你有一个解决方案如何控制iOS 8.3表情符号键盘高度?
解决方法 好.所以看看我的旧代码,我记得,我不使用2个观察者(UIKeyboardDIDShowNotification / UIKeyboardDIDHIDeNotification).我使用单个观察者(UIKeyboarDWillChangeFrameNotification),这是每个事件触发:键盘隐藏,键盘显示,键盘更改帧.在我的情况下,文本框和发送按钮嵌套在UIVIEw中,这是在UIVIEwController的视图中添加的视图,高于一切.
我在vIEwDIDAppear中添加观察者,并删除vIEwWilldisappear中的观察者(以避免在视图不活动时触发任何通知).
以上信息对您的情况是不必要的,只是为了信息加入.相关代码如下:
添加观察者:
- (voID) vIEwDIDAppear:(BOol)animated { [super vIEwDIDAppear:animated]; [[NSNotificationCenter defaultCenter] addobserver:self selector:@selector(keyboarDWillChangeFrame:) name:UIKeyboarDWillChangeFrameNotification object:nil];}
手柄通知:
- (voID) keyboarDWillChangeFrame:(NSNotification*)notification { NSDictionary* notificationInfo = [notification userInfo]; CGRect keyboardFrame = [[notificationInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; [UIVIEw animateWithDuration:[[notificationInfo valueForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue] delay:0 options:[[notificationInfo valueForKey:UIKeyboardAnimationCurveUserInfoKey] integerValue] animations:^{ CGRect frame = self.textVIEwContainer.frame; frame.origin.y = keyboardFrame.origin.y - frame.size.height; self.textVIEwContainer.frame = frame; } completion:nil];}
您可能需要对frame.origin.y …行进行一些调整以进行正确的计算.我不知道你是否有一个UITabbarController或底部的任何酒吧.这里最安全的选择是:
frame.origin.y = self.vIEw.frame.size.height - keyboardFrame.size.height - X;
如果您的VC覆盖整个屏幕,则X为0.如果没有,请使用任何底部的高度.
总结以上是内存溢出为你收集整理的如何获得iOS 8.3表情符号键盘高度?全部内容,希望文章能够帮你解决如何获得iOS 8.3表情符号键盘高度?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)