如何关闭 UITextView 的键盘
Posted
技术标签:
【中文标题】如何关闭 UITextView 的键盘【英文标题】:How to dismiss keyboard for UITextView 【发布时间】:2015-03-18 15:47:21 【问题描述】:当点击键盘上的“完成”按钮时会触发以下事件。它进入条件并返回false。但是,键盘仍保留在屏幕上。
class MyViewController: UIViewController, UITextViewDelegate
func textView(textView: UITextView!, shouldChangeTextInRange: NSRange, replacementText: NSString!) -> Bool
if(replacementText.isEqualToString("\n"))
textBox.resignFirstResponder()
return false
return true
textBox 是视图的委托。我已经通过 Interface Builder 连接了它。任何想法为什么它不关闭键盘?
【问题讨论】:
你把文本框的delegate设置为self了吗? 在OP的底部,我提到它是通过IB连接的。我什至在 viewDidLoad() 中添加了 textBox.delegate = self 但仍然没有。 @4thSpace 尝试将 textBox 更改为textView.resignFirstResponder()
,看看是否有效
使用在委托方法中传递的 textView 而不是你的属性 textBox。
啊,我误会你了。您是否有任何其他委托方法,例如 textViewShouldEndEditing
正在使用,可以阻止 resignfirstresponder 工作?您是否也尝试过使用 textView,委托的参数而不是您的 textBox?
【参考方案1】:
首先请确保您的 My ViewController 是 textField 的委托,
然后,在方法 shouldChangeTextInRange
上使用在委托方法中传递的 textView 而不是您的属性 textBox。
例如:
class MyViewController: UIViewController, UITextViewDelegate
func viewDidLoad()
super.viewDidLoad()
textBox.delegate = self
func textView(textView: UITextView!, shouldChangeTextInRange: NSRange, replacementText: NSString!) -> Bool
if(replacementText.isEqualToString("\n"))
textView.resignFirstResponder()
return false
return true
【讨论】:
以上是关于如何关闭 UITextView 的键盘的主要内容,如果未能解决你的问题,请参考以下文章
选择另一个 UITextView 时,如何阻止 UITextView 退出第一响应者/关闭键盘?