默认情况下,点击UITextField
iOS时会显示默认键盘。有可能绕过这个吗?我想在textField上以模态方式显示自定义视图控制器,并能够通过此控制器编辑textField。
有推荐方法吗?
答案 0 :(得分:2)
当用户点击UItextField时,以下将把键盘替换为输入视图。
self.TextField.inputView = "your view ";
答案 1 :(得分:1)
好的,尝试了你要求的确切要求: -
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
[textField resignFirstResponder];
POCModalViewController *objPOCModalViewController = [[POCModalViewController alloc]init];
[self presentViewController:objPOCModalViewController animated:YES completion:nil];
return NO;
}
POCModalViewController
是您想要呈现的控制器。
答案 2 :(得分:0)
我想发布我最终实施的解决方案,这是最接近Footyapps27的解决方案:
我已经制作了控制器,它将显示模态控制器(内部包含多个自定义键盘视图)作为控制器视图中包含的任何UITextField对象的uitextfield
委托。
我现在可以在开始编辑文本字段时通过- (BOOL)textFieldShouldBeginEditing:(TWValueInput *)textField
方法收到任何通知:
在该委托方法中,我有以下代码片段:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
MyCustomKeyboardVC* vc = [[UIStoryboard storyboardWithName:@"main" bundle:nil] instantiateViewControllerWithIdentifier:@"customKeyboardController"];
vc.delegate = self;
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:vc animated:NO completion:nil];
return NO;
}
在该方法中返回NO将阻止显示默认键盘。实际上无需在文本字段中调用resignFirstResponder
。
我应该指出,Apple推荐的显示自定义键盘的方法是为Divya提到的textfield inputView
属性提供自定义视图。由于我想管理多个键盘视图条目,因此我通过上面提到的委托方法显示自定义键盘控制器更快。