触摸只读 UITextView 时关闭 iPhone 数字键盘

Posted

技术标签:

【中文标题】触摸只读 UITextView 时关闭 iPhone 数字键盘【英文标题】:Dismiss iPhone number pad when a read only UITextView is touched 【发布时间】:2013-01-24 15:53:09 【问题描述】:

在我的简单 iPhone 应用程序中,我有一个用于输入文本的 UITextField 和一个用于结果的 UITextView。 UITextField 使用数字键盘,因为只允许使用数字。 UITextView 是只读的,但启用了用户交互。这样做的原因是我希望用户能够进行复制和粘贴但不更改结果。众所周知,数字键盘没有“开始”按钮。所以我做了resignFirstResponder() in touchesBegan,只要我在文本视图区域之外触摸它就可以工作。即使触摸 UITextView 的内部,如何关闭键盘(数字键盘)?

【问题讨论】:

附注 - 一些用户可能使用外部键盘,因此请确保您正确验证用户在文本字段中的输入,因为这些用户将能够输入字母和其他符号。 我想这可能就是你要找的东西***.com/questions/8782664/… 【参考方案1】:

您可以向 UITextView 添加手势识别器。未经测试的代码:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[self.textView addGestureRecognizer:tap];
[tap release]; // not necessary or allowed under ARC

然后是处理程序:

- (void)handleTap:(UITapGestureRecognizer *)tap

    // resign first responder and whatever else you need to do

您可能需要在不需要时禁用手势识别器,以防它干扰只读UITextView 中的文本选择。

【讨论】:

以上是关于触摸只读 UITextView 时关闭 iPhone 数字键盘的主要内容,如果未能解决你的问题,请参考以下文章

iphone UITextView 手动注册触摸

将光标放在用户触摸的 UITextView 上

解除键盘后,带有所选文本的UITextView不响应触摸

编译应用程序时UITextView无法输入[关闭]

使 UIControl 仅接受滑动手势并传递触摸/点击手势

iOS10 UITextView 触摸事件崩溃