ScrollView 中的 UITextField 在 iOS 中不显示键盘

Posted

技术标签:

【中文标题】ScrollView 中的 UITextField 在 iOS 中不显示键盘【英文标题】:UITextField in ScrollView doesnt display keyboard in iOS 【发布时间】:2014-04-09 12:35:48 【问题描述】:

我在 UIView 中有 10 个文本字段,我已将视图添加到 scrollView。其中将显示 5 个文本字段,并且将滚动其他文本字段。

在我的textFieldDidBeginEditing

-(void)textFieldDidBeginEditing:(UITextField *)textField

    if (textField.tag>=4)
    
        CGRect viewframe=contentsOfView.frame;
        viewframe.origin.y=viewframe.origin.y-100;
        contentsOfView.frame=viewframe;

    

在我的textFieldDidEndEditing

-(void)textFieldDidEndEditing:(UITextField *)textField


    if(textField.tag>=4)
    
        CGRect viewframe=contentsOfView.frame;
        viewframe.origin.y=viewframe.origin.y+100;
        contentsOfView.frame=viewframe;
    


如果我滚动屏幕以查看下一个文本字段,则屏幕上显示的前 5 个字段可以正常工作。如果我点击它,键盘不会出现。

[contentsOfView addSubview:nameField];
[contentsOfView addSubview:mobileNumberField];
[contentsOfView addSubview:passwordField];
[contentsOfView addSubview:taxiNumberfield];
[contentsOfView addSubview:emailIdField];
[contentsOfView addSubview:taxiTypeField];
[contentsOfView addSubview:licenseNumber];
[contentsOfView addSubview:nricNumber];
[contentsOfView addSubview:noOfPassengerField];
[contentsOfScrollView addSubview:contentsOfView];
 [self.view addSubView:contentScrollView ];

文本字段

 nameField.borderStyle=UITextBorderStyleLine;
nameField.layer.borderWidth=1.0;
nameField.layer.borderColor=[[HexColorCode colorWithHexastring:@"c88202" ] CGColor];
nameField.keyboardType=UIKeyboardTypeNamePhonePad;
nameField.placeholder=@"NAME";
nameField.backgroundColor=[UIColor whiteColor];
 UIView *  paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 15, 20)];
nameField.leftView = paddingView;
nameField.leftViewMode = UITextFieldViewModeAlways;
nameField.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter;
nameField.delegate=self;
nameField.tag=1;

【问题讨论】:

您能说明如何将文本字段添加到您的视图中吗? 我已经编辑了我的问题 好吧,嗯,我想我有点含糊。你能展示你是如何创建这些文本字段的,尤其是它们的框架吗? 你在使用故事板吗...? 不,完整代码,请看我的问题你能理解。 【参考方案1】:

移除 contentView 将对象添加到 contectScrollView

[contentScrollView addSubView: nameField];
[self.View addSubView:contentScrollView];

这可能对你有帮助。

【讨论】:

以上是关于ScrollView 中的 UITextField 在 iOS 中不显示键盘的主要内容,如果未能解决你的问题,请参考以下文章

UIpickerView 在同一个 ScrollView 中填充多个 uitextFields

文本在缩放模式下显示模糊 UITextField/TextView

自动向下滚动到下一个 UITextField

ios 7底部的白线与UITextField

为啥当其他 textField 变为活动状态时,scrollView 会向下滚动?

iOS:在顶部选择文本字段时停止 ScrollView 腾出空间