Pen*_*One 27 iphone uitextfield uikeyboard ipad ios
我意识到这与大多数帖子相反,但我希望即使按下"键盘向下"按钮键盘也能保持运行状态.
具体来说,我有两个视图UITextField.使用以下委托方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
return NO;
}
Run Code Online (Sandbox Code Playgroud)
即使用户按下键盘上的Done按钮或点击屏幕上任何其他位置的按钮,我也可以保持键盘上升除了键盘右下方那个讨厌的键盘向下按钮.
我正在使用这个视图就像一个模态视图(尽管视图与一个在UINavigationController中被推送的ViewController相关联),所以从用户的角度来看,它确实能够始终保持键盘的正常运行.如果有人知道如何实现这一目标,请告诉我!谢谢!
更新仍然没有解决方案!当Done按下时,它会触发textFieldShouldReturn,但是当Dismiss按下按钮时,它会触发textFieldDidEndEditing.我无法阻止textField结束编辑或它永远不会消失.不知何故,我真的想要一个检测Dismiss按钮并忽略它的方法.如果你知道一种方法,请赐教!
Jac*_*ard 12
有办法做到这一点.因为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];
}
Run Code Online (Sandbox Code Playgroud)
这适用于iPhone应用程序.没试过用iPad.您可能需要调整大小myWindow.另外,我没有做任何内存管理myWindow.所以,也考虑这样做.
我想我找到了一个很好的解决方案.
添加BOOL作为实例变量,让我们调用它 shouldBeginCalledBeforeHand
然后实现以下方法:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
shouldBeginCalledBeforeHand = YES;
return YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
return shouldBeginCalledBeforeHand;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
shouldBeginCalledBeforeHand = NO;
}
Run Code Online (Sandbox Code Playgroud)
以及
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
return NO;
}
Run Code Online (Sandbox Code Playgroud)
使用返回按钮防止键盘消失.诀窍是,从一个文本字段到另一个文本字段的焦点切换将事先触发textFieldShouldBeginEditing.如果按下关闭键盘按钮,则不会发生这种情况.文本字段获得焦点后,该标志将重置.
| 归档时间: |
|
| 查看次数: |
15484 次 |
| 最近记录: |