iOS - 在Storyboard中如何关闭UITextView的键盘

5

我有一个UITextView,用户可以在其中键入一些笔记并保存它们。我希望当用户在键盘边缘拖动并向下拉时(就像在消息中一样),键盘会消失。我发现在storyboard ->属性检查器 ->滚动视图 ->键盘中,有一个下拉菜单,我可以选择消除键盘的方式。我尝试了Dismiss on drag和Dismiss interactively两种方式,但没有任何反应。我尝试将管理文本视图的视图控制器设置为委托,但似乎没有一种方法可以与键盘交互。有什么想法吗?

2个回答

7
我曾经遇到相似的问题。我在UITableView的一个单元格中放置了一个UITextView。将TextView的键盘属性设置为“拖动时取消”没有生效。解决方法是将TableView的键盘属性设置为“拖动时取消”。
我认为你的ScrollView可能包含在其他控件中,比如TableView。那么它就是容器执行滚动。如果是这种情况,您应该将容器的键盘属性设置为“拖动时取消”。
如果这样不起作用,则我的另一个建议是确保您的ScrollView的内容足够多,以便实际进行滚动。请确保ScrollView的内容长度足够长,以使其不适合屏幕。
如果有任何疑问,请告诉我以上哪些方法可行。

你说得对 - 一旦我有足够的东西,使得笔记不能在一个屏幕上显示,我就可以拖动以关闭键盘。我也误解了“拖动时关闭”的含义。我以为它是指在键盘边缘拖动,但实际上是在文本视图上拖动。现在我明白了。谢谢! - ljiatu

0
也许(我没有尝试过,而且经验不是很丰富),你可以在主视图上添加一个UISwipeGestureRecognizer(也许你需要将主视图的“自定义类”更改为UIControl),然后从它的动作方法中调用[self.view endEditing:YES]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接