【问题标题】:How to dismiss a keyboard from textview programmatically如何以编程方式从 textview 中关闭键盘
【发布时间】:2012-05-23 17:16:51
【问题描述】:

有什么方法可以隐藏或不显示键盘而不在 iOS 中调用 resignFirstResponder?我知道隐藏键盘的不同方法,第一个是使 textview 不可编辑,或使用

- (BOOL)textFieldShouldEndEditing:(UITextView *)textview
{
    [textview resignFirstResponder];
}

但在我的情况下,这些方法不会奏效,因为我只想关闭或隐藏键盘,但需要在 textview 中进行编辑。我有一个包含一些文本的文本视图,当我点击它需要选择的句子时,我已经很好地完成了选择部分,但是当我在我的项目中写上面的键盘关闭方法时,点击的句子的选择不会出现,.有什么方法可以解决这个问题。

【问题讨论】:

  • 我不清楚您要做什么。你说你希望能够编辑文本视图,但不想要键盘?那你怎么让用户编辑呢?你想让键盘出现还是不出现?
  • @JPHribovsek 我不想再显示键盘了。为什么对这个问题投反对票?
  • 我没有否决您的问题,只是想帮助...
  • @JPHribovsek 好的,谢谢..我从 Vignesh 那里得到了解决方案。这是一个非常好的解决方案。

标签: iphone ios uitextview


【解决方案1】:

仅当您处于编辑模式时,文本字段的选择才会保留。当您辞去第一响应者时,您的选择也会消失。

为避免将键盘带入编辑模式,您可以更改输入视图。比如看代码,

    textview.inputView = [[UIView alloc] init];

这会带来一个自定义输入视图,它是不可见的。

【讨论】:

  • 我把上面的代码放在哪里了?在texview的选择方法中?
  • 当你创建你的文本视图时。
  • ,但是我在 IB 中创建了这个 textview ......所以我可以把他放在 ViewDidLoad 例如...... mainTextview.inputview =[[UIView alloc]init];
  • 你再次帮助我,呵呵,谢谢loootttttt ..它为我工作..谷歌没有我们可以用这种方式关闭键盘。再次感谢
  • @stackiphone。欢迎再次!从技术上讲,我并没有关闭键盘,我只是展示了一个没有设置框架的输入视图(CGRectZero)。
【解决方案2】:

添加

self.textView.editable = NO;

试试这个

NSRange selection = [yourTextView.text rangeOfString:yourTextView.text]; 
if( selection.location != NSNotFound ){ yourTextView.selectedRange = selection; }

它将从文本视图中移除键盘。希望对您有所帮助。

【讨论】:

  • 不,它不会对我锻炼,请回答这个问题,我只想选择没有键盘的文本视图
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 2022-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-16
  • 2015-09-10
相关资源
最近更新 更多