【发布时间】:2016-10-26 21:37:18
【问题描述】:
我正在开发一个具有自动布局的 iPhone 应用程序,该应用程序在视图底部有一个上部和一个下部字段。用户点击一个字段,我必须在键盘上方向上滚动视图。这是我的keyboardDidShow 代码。
- (void) keyboardDidShow:(NSNotification *)notification
{
CGSize kbSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
[[self scrollView] setContentInset:contentInsets];
[self setIsKeyboardVisible:YES];
}
这不仅不应该起作用(我省略了实际的滚动命令),而且当我点击上部字段时,视图会向上滚动,直到该字段的底部位于键盘顶部。当我点击键盘上的下一步将光标移动到下方字段时,视图会向上滚动一点,直到下方字段的底部位于键盘顶部。
以下是我处理 Return 键的方式:
- (BOOL) textFieldShouldReturn:(UITextField*)textField
{
switch ([textField tag])
{
case vtNameField:
[[self txtEmail] becomeFirstResponder];
break;
case vtEmailField:
[[self txtEmail] resignFirstResponder];
break;
default:
break;
}
return NO;
}
有人知道导致滚动的原因吗?我在其他应用程序中看到了这种行为,我认为它必须是手动编码的。我只在我的一个视图中看到了这一点,我想知道这是否是由于我配置了一些东西。
【问题讨论】:
标签: ios uiscrollview keyboard