我正在显示模态对话框,但键盘覆盖了一些可编辑的字段。是否有任何方法可以自动移动视图...或者我必须手动编写执行此操作所需的代码吗?即改变模态视图的位置等
UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:editViewController];
navController.modalPresentationStyle = UIModalPresentationFormSheet;
navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[editViewController release];
[self presentModalViewController:navController animated:YES];
答案 0 :(得分:1)
使用UIKeyboardWillShowNotification订阅UIKeyboardWillHideNotification,NSNotificationCenter通知,并使用UIScrollView允许用户向下滚动。将UIScrollView contentSize属性设置为普通的完整帧,并在键盘出现和消失时调整滚动视图的帧大小。在处理UIKeyboardWillShow / HideNotifications的方法中使用此代码可以获得键盘的大小和动画持续时间:
NSDictionary *userInfo = [notification userInfo];
NSValue *keyboardBoundsValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
[keyboardBoundsValue getValue:&keyboardBounds];
NSValue* value = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
NSTimeInterval duration = 0;
[value getValue:&duration];
处理这些案例的另一个提示 - 当您旋转设备时,您将非常快速地接收这两个通知(隐藏+显示)。