显示模态自定义键盘视图控制器,用于编辑UITextField

时间:2014-01-24 15:07:15

标签: ios7 uitextfield uikeyboard

默认情况下,点击UITextField iOS时会显示默认键盘。有可能绕过这个吗?我想在textField上以模态方式显示自定义视图控制器,并能够通过此控制器编辑textField。

有推荐方法吗?

3 个答案:

答案 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的解决方案:

  1. 我已经制作了控制器,它将显示模态控制器(内部包含多个自定义键盘视图)作为控制器视图中包含的任何UITextField对象的uitextfield委托。

  2. 我现在可以在开始编辑文本字段时通过- (BOOL)textFieldShouldBeginEditing:(TWValueInput *)textField方法收到任何通知:

  3. 在该委托方法中,我有以下代码片段:

    - (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属性提供自定义视图。由于我想管理多个键盘视图条目,因此我通过上面提到的委托方法显示自定义键盘控制器更快。

相关问题