如何用退货键解除UITextView的键盘?
在IB的库中,介绍告诉我们,当按下返回键时, UITextView
的键盘将消失。 但实际上,返回键只能用作' n'。
我可以添加一个按钮并使用[txtView resignFirstResponder]
来隐藏键盘。
但有没有办法在键盘上添加返回键的操作,以便我不需要添加UIButton
?
当用户点击返回键时, UITextView
没有任何方法。 如果您希望用户只能添加一行文本,请使用UITextField
。 触摸返回并隐藏UITextView
的键盘不符合接口指南。
即使如此,如果您想要这样做,请实现UITextViewDelegate
textView:shouldChangeTextInRange:replacementText:
方法,并检查替换文本是否为n
,隐藏键盘。
可能还有其他的方法,但我没有意识到。
想象一下,我会在这里发布代码片段:
确保你声明了对UITextViewDelegate
协议的支持。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
Swift 4.0更新:
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if text == "n" {
textView.resignFirstResponder()
return false
}
return true
}
我知道这已经被回答了,但我不太喜欢使用字符串文字换行,所以这就是我所做的。
- (BOOL)textView:(UITextView *)txtView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if( [text rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]].location == NSNotFound ) {
return YES;
}
[txtView resignFirstResponder];
return NO;
}
Swift 4.0更新:
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if (text as NSString).rangeOfCharacter(from: CharacterSet.newlines).location == NSNotFound {
return true
}
txtView.resignFirstResponder()
return false
}
链接地址: http://www.djcxy.com/p/19095.html
上一篇: How to dismiss keyboard for UITextView with return key?
下一篇: Is there a documented way to set the iPhone orientation?