Swift 快捷文本视图键盘
在swift中,我无法关闭文本视图的键盘 我可以用下面的命令取消一个文本字段Swift 快捷文本视图键盘,swift,uitextview,Swift,Uitextview,在swift中,我无法关闭文本视图的键盘 我可以用下面的命令取消一个文本字段 @IBAction func DismissKeyboard(sender: AnyObject) { self.resignFirstResponder() } 但我不确定如何使用文本视图,只需将UITextView添加为IBOutlet并使用相同的功能: @IBAction func DismissKeyboard(sender: AnyObject) { yo
@IBAction func DismissKeyboard(sender: AnyObject)
{
self.resignFirstResponder()
}
但我不确定如何使用文本视图,只需将UITextView添加为IBOutlet并使用相同的功能:
@IBAction func DismissKeyboard(sender: AnyObject) {
yourtextView.resignFirstResponder()
}
您必须将
textview.delegate
设置为self,并使用shouldChangeTextInRange
功能在按回车键时退出
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
if text == "\n" // Recognizes enter key in keyboard
{
textView.resignFirstResponder()
return false
}
return true
}
swift 3
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if text == "\n" {
textView.resignFirstResponder()
return false
}
return true
}
这是一个更好、更直观(对用户而言)的解决方案,可以消除软键盘。“\n”解决方案的问题是用户无法在textView中插入换行符,因为在换行符出现之前,点击键盘上的返回/完成按钮将关闭键盘。下面的方法可以让您在教导用户只需点击外部文本输入字段是拒绝使用键盘的标准方式的同时保留该功能
// MARK: - dismiss keyboard when user taps outside of text boxes
override func viewDidLoad() {
super.viewDidLoad()
configureTapGesture()
}
private func configureTapGesture() {
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(WriteJournalEntryViewController.handleTap))
view.addGestureRecognizer(tapGesture)
}
@objc func handleTap() {
view.endEditing(true)
}
(假设此代码位于名为“WriteJournalEntryViewController”的UIViewController自定义子类中)
view=UIViewController中的整个视图,因此它不仅仅适用于textView对象。
endEditing=UIView类的一种方法,您可以阅读它的文档。非常感谢您在这方面努力寻找帮助,希望这也能帮助其他人:D