我意识到这与大多数帖子相反,但我希望键盘保持向上即使按下“键盘向下”按钮。
具体来说,我有一个包含两个 UITextField
的 View 。使用以下委托(delegate)方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
return NO;
}
即使用户按下键盘上的 Done
按钮或点击屏幕上的其他任何地方,我也能够保持键盘向上,除了键盘右下角那个讨厌的键盘向下按钮.
我将此 View 用作模态视图(尽管该 View 与被插入 UINavigationController 的 ViewController 相关联),因此从用户的角度来看,它确实最有效地保持键盘始终处于打开状态。如果有人知道如何实现这一目标,请告诉我!谢谢!
更新 仍然没有解决方案!当按下 Done
时,它会触发 textFieldShouldReturn
,但当按下 Dismiss
按钮时,它会触发 textFieldDidEndEditing
。我无法阻止 textField
结束编辑,否则它从不 消失。不知何故,我真的很想有一个方法来检测 Dismiss
按钮并忽略它。如果你知道方法,请赐教!
最佳答案
有办法做到这一点。因为 UIKeyboard
是 UIWindow
的子类,唯一大到足以进入UIKeyboard
的方式是另一个UIWindow
。
- (void)viewDidLoad {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(coverKey) name:UIKeyboardDidShowNotification object:nil];
[super viewDidLoad];
}
- (void)coverKey {
CGRect r = [[UIScreen mainScreen] bounds];
UIWindow *myWindow = [[UIWindow alloc] initWithFrame:CGRectMake(r.size.width - 50 , r.size.height - 50, 50, 50)];
[myWindow setBackgroundColor:[UIColor clearColor]];
[super.view addSubview:myWindow];
[myWindow makeKeyAndVisible];
}
这适用于 iPhone 应用程序。还没有用 iPad 试过。您可能需要调整 myWindow
的大小。此外,我没有对 myWindow
进行任何内存管理。所以,也可以考虑这样做。
关于iphone - 有没有办法防止键盘消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6006017/