我相信这并没有那么困难,但我很难找到关于如何使用文本视图而不是文本字段关闭带有返回/完成键的键盘的信息.以下是我到目前为止try 过的内容(适用于文本字段)

非常感谢您的帮助!

//  PostTravelQuestion.swift

class PostTravelQuestion: UIViewController, UITextViewDelegate {

    @IBAction func closepostpage(sender: AnyObject) {
        dismissViewControllerAnimated(true, completion: nil)
    }


    @IBOutlet var postquestion: UITextView!


    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        postquestion.delegate = self
    }

    self addDoneToolBarToKeyboard:self.textView


    /*func textViewShouldEndEditing(textView: UITextView) -> Bool {

        textView.resignFirstResponder()

        return true
    }*/

    /*override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
        postquestion.resignFirstResponder()
        self.view.endEditing(true)
    }*/



    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    func textViewShouldReturn(textView: UITextView!) -> Bool {
        self.view.endEditing(true);
        return true;
    }
}

推荐答案

这对我很有用:

import UIKit

class ViewController: UIViewController, UITextViewDelegate {


    @IBOutlet weak var textView: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()

        textView.delegate = self
    }

    /* Updated for Swift 4 */
    func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        if(text == "\n") {
            textView.resignFirstResponder()
            return false
        }
        return true
    }

    /* Older versions of Swift */
    func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
        if(text == "\n") {
            textView.resignFirstResponder()
            return false
        }
        return true
    }

}

Swift相关问答推荐

为什么第二项任务不在第一项任务完成之前开始?(并发队列)

SWIFT中MAP的静态方法包装器

如何使用Swift宏向 struct 体及其init函数添加新成员?

在SwiftUI中使用自定义图像填充列表行的正确方法

我可以在预览中通过拖动手势跳转,但在模拟器中失败

如何在设备(或常量)地址空间中创建缓冲区?

使用UICollectionViewFlowLayout创建水平的UICollectionView,并同时将单元格对齐到左边和右边的能力

将弱引用作为类函数引用传递时,弱引用无法按预期工作

SwiftUI 从任务中安全更新状态变量

如何使用带有 span 样式标签的 Swift XMLParser

获取具有关联类型的协议的self

Swift初始化具有可变ID的重复值数组

无法分配给属性:absoluteString是一个只能获取的属性

`@available` 属性在 macOS 版本上被错误地限制

获取 SwiftUI 中 Binding 的值更改更新

SwiftUI 文本被意外截断

通用枚举菜单 SwiftUI

快速的 AES 加密

如何从元组数组创建字典?

如何在 Swift 中使用 Crashlytics 登录?