即使userInteractionEnabled = NO,也会在firstResponder上显示UITextField键盘

时间:2012-12-01 17:08:07

标签: iphone objective-c ios uitextfield uikeyboard

我有一个第一响应者的UITextField。我想在进入视图时显示键盘,但我想这样做,用户将无法编辑它,光标也会一直隐藏。

当您点击键盘字母时,它将被写入UITextField,但用户将无法在那里编辑任何内容,甚至不能进行复制。

谢谢!

3 个答案:

答案 0 :(得分:6)

好的,根据我的评论,我的解决方案是让代理UITextFieldhidden属性设置为YES。我所做的是将隐藏的文本字段添加到视图中,并在其上调用becomeFirstResponder。用户不知道该文本字段存在。在文本字段的委托回调中,我使用用户输入的文本并将其添加到UITextView(尽管您可以将文本添加到您想要的任何内容中,例如问题中的UITextField )。我为可见文本视图关闭了userInteractionEnabled。这会产生你想要的效果。

我创建了一个上传到Github的示例项目。 (如果您不熟悉它,只需单击zip按钮下载它,解压缩它,然后打开.xcodeproj文件)。 https://github.com/MaxGabriel/HiddenTextField

答案 1 :(得分:0)

编辑回答:试试这个:

1. [txtField becomeFirstResponder]; 
2. txtField.enabled = NO; 
3. when some press on keyboard, then txtField.enabled = YES;

检查出来:http://www.youtube.com/watch?v=cKV5csbueHA

答案 2 :(得分:0)

我的UISearchBar中有viewController个属性。我这样做了:

- (void)viewWillAppear:(BOOL)animated
{
    [self.searchBar becomeFirstResponder];
}

对于UITextField,这应该是相同的。

至于禁用编辑,请使用:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    return NO;
}

您应该将viewController设置为UITextField的委托。