Swift 关闭 UITextView 键盘
Swift Dismiss UITextView Keyboard
我无法关闭 swift 中文本视图的键盘。
我能够使用以下内容关闭文本字段
@IBAction func DismissKeyboard(sender: AnyObject)
{
self.resignFirstResponder()
}
但我不确定如何使用文本视图进行处理
只需将 UITextView 添加为 IBOutlet 并使用相同的函数:
@IBAction func DismissKeyboard(sender: AnyObject) {
yourtextView.resignFirstResponder()
}
您必须将 textview.delegate
设置为 self 并使用 shouldChangeTextInRange
函数在按 return 时退出。
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 中插入换行符——因为在键盘上按下 return/done 按钮会在换行符发生之前关闭键盘。下面的方法可以让您保留该功能,同时告诉用户只需在文本输入字段之外点击是关闭键盘的标准方法。
// 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 自定义子 class 中)。
view = 你在 UIViewController 中的整个视图,所以它不仅仅适用于你的 textView 对象。
endEditing = UIView 的一个方法class,你可以阅读它的文档。
我无法关闭 swift 中文本视图的键盘。
我能够使用以下内容关闭文本字段
@IBAction func DismissKeyboard(sender: AnyObject)
{
self.resignFirstResponder()
}
但我不确定如何使用文本视图进行处理
只需将 UITextView 添加为 IBOutlet 并使用相同的函数:
@IBAction func DismissKeyboard(sender: AnyObject) {
yourtextView.resignFirstResponder()
}
您必须将 textview.delegate
设置为 self 并使用 shouldChangeTextInRange
函数在按 return 时退出。
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 中插入换行符——因为在键盘上按下 return/done 按钮会在换行符发生之前关闭键盘。下面的方法可以让您保留该功能,同时告诉用户只需在文本输入字段之外点击是关闭键盘的标准方法。
// 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 自定义子 class 中)。
view = 你在 UIViewController 中的整个视图,所以它不仅仅适用于你的 textView 对象。 endEditing = UIView 的一个方法class,你可以阅读它的文档。