【问题标题】:Show UITextField keyboard on firstResponder even when userInteractionEnabled = NO即使 userInteractionEnabled = NO 在 firstResponder 上显示 UITextField 键盘
【发布时间】:2012-11-19 15:25:31
【问题描述】:

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

当你点击一个键盘字母时,它会被写入 UITextField,但用户将无法在其中编辑任何内容,甚至无法复制。

谢谢!

【问题讨论】:

  • 我认为您的问题必须有比这种方法更好的解决方案。只是在这里吐口水,但可能有一个 UITextField 是 hidden,你调用 becomeFirstResponder,然后在其委托方法 textField:shouldChangeCharactersInRange:replacementString: 中,你可以获取文本并将其添加到 UITextViewUITextField 和 @ 987654326@.
  • 我没明白你的意思..

标签: iphone objective-c ios uitextfield uikeyboard


【解决方案1】:

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

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

【讨论】:

  • 哇!非常感谢您的解决方案,当然还有代码本身的人,您在这里所做的真是太棒了!谢谢!
【解决方案2】:

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

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

这对于UITextField 应该同样有效。

至于禁用编辑,使用:

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

您应该将您的 viewController 设置为 UITextField 的代理。

【讨论】:

  • 没关系,但这不是我想要的。他已经设置为第一响应者,但我希望它成为第一响应者,键盘会出现,留在那里,但 UITextField 将设置为可编辑 = NO
  • 哈......这是你正在寻找的一个非常奇怪的行为。 :\
【解决方案3】:

编辑答案:试试这个:

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

看看这个:http://www.youtube.com/watch?v=cKV5csbueHA

【讨论】:

  • 在“UITextField”类型的对象上找不到属性“可编辑”,这是为什么呢?
  • 它正在工作,您无法编辑 UITextField,但键盘消失了.. 我该怎么做才能使键盘保持可见,并且我可以通过它单击和编辑 UITextField。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
  • 1970-01-01
  • 2020-03-02
  • 1970-01-01
  • 2011-04-20
  • 1970-01-01
相关资源
最近更新 更多