我使用此代码来确定键盘的大小:
- (void)keyboardWillChange:(NSNotification *)notification {
NSDictionary* keyboardInfo = [notification userInfo];
NSValue* keyboardFrameBegin = [keyboardInfo valueForKey:UIKeyboardFrameBeginUserInfoKey];
CGRect keyboardFrameBeginRect = [keyboardFrameBegin CGRectValue];
}
Run Code Online (Sandbox Code Playgroud)
我在模拟器中运行它.
问题是,因为iOS 8这将不会给出正确的值,如果键盘建议已启动或者如果我将它们向下推,则会得到不同的(不正确的)值.
如何获得键盘的确切大小,包括键盘建议?
这只是一个iOS 8问题,键盘在iOS 7中正确显示设备方向更改.我的应用程序支持纵向和横向,并使用自动布局.
如果我将包含UITextField子类的UIViewController子类推送到导航堆栈并且UITextField成为纵向的第一个响应者,则默认键盘会正确显示.但是,如果我将设备旋转到横向,则UIViewController子视图布局会正确显示,但键盘会显示在屏幕的顶部中央.键盘的方向对于横向方向是正确的,但它的框架宽度与纵向方向的预期宽度相同.如果我将应用方向设置为仅横向,则键盘无法正确显示.这只是iOS 8方向更改的问题.