3

我有一张桌子,在其中一个单元格中我保留了一个 UITextView。当用户点击它时,键盘就会出现。我正在尝试各种方法来摆脱它。我的第一种方法是检测 UITextView 的表格单元格上的点击,但由于文本视图占据了大部分,它不适合。然后我尝试在工具栏上添加一个按钮,每当用户按下它时,键盘就会随着 resignFirstResponder 消失,但它不起作用。似乎只有当我与 UITextView resignFirstResponder 在同一个视图中时才有效。那么如何从不同的角度摆脱键盘呢?

谢谢。

4

5 回答 5

1

你是什​​么意思“它不会工作”。如果 txtView 是您的 UITe4xtView,您是否意味着将按钮与具有 [txtView resignFirstResponder] 的操作相关联不起作用?我以前用过这段代码,它对我有用

于 2009-09-21T20:22:56.793 回答
1

下面的方法使用 Return 键关闭 UITextView 键盘。

在您的控制器中,将 UITextView 的 Delegate 设置为 self ,如下所示:

myTextView.delegate=self;

然后添加这个方法:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
 replacementText:(NSString *)text
{
 // Any new character added is passed in as the "text" parameter
 if ([text isEqualToString:@"\n"]) {
  // Be sure to test for equality using the "isEqualToString" message
  [textView resignFirstResponder];

  // Return FALSE so that the final '\n' character doesn't get added
  return FALSE;
 }
 // For any other character return TRUE so that the text gets added to the view
 return TRUE;
}

如果您没有将 Return 键用作真正的 Return 键(例如添加新行),这应该可以工作。

于 2009-09-21T23:48:05.600 回答
0

在不知道控件的大小或意图的情况下,很难做出可靠的建议。但是,如果您正在寻找只读文本视图,为什么不考虑使用 UILabel?如果它将包含大量只读文本并且您需要丰富的格式,请考虑使用带有格式的 UIWebView。

当然,这个答案可能完全不合适。你能澄清你的意图,也许显示一个正在进行的应用程序的屏幕截图(当然是未开发的)?

于 2009-09-21T20:25:18.947 回答
0

尝试在 Interface Builder 的 Text View Attributes 窗口中取消选中“Editable”选项。

如果用户单击您的 TextView,这会阻止键盘显示

于 2010-07-22T13:24:34.140 回答
-1

我用过这种问题,下面的方法

- (BOOL)textFieldShouldReturn: tf_some_text_field {

[tf_some_text_field resignFirstResponder];
[tf_another_text_field_in_the_same_view resignFirstResponder];

return YES;
}

希望能帮助到你...

于 2009-09-22T13:34:45.150 回答