在Swift中清除UITextView的内容

时间:2019-03-05 23:00:49

标签: ios swift uitextview

我的应用中有一个UITextView和一个UIButton,并且我试图获取UITextView的文本内容,以便在点击UIButton时将其清除。

我的代码:

@IBOutlet weak var textView: UITextView!

@IBAction func ClearButtonTapped(_ sender: UIButton) {
        // I want to clear the text content of textView
    }

UITextView类中是否有内置功能?在Xcode中搜索UITextView类时,我什么都没找到。

我的应用程序位于Xcode 10.1和Swift 4.2上。

3 个答案:

答案 0 :(得分:1)

小改进:

textView.text = nil

答案 1 :(得分:1)

尝试使用textView.text = ""。如果这不起作用,则可能是您正在使用占位符。尝试textView.placeholder = ""

答案 2 :(得分:0)

我没有找到准备使用的功能来清除UITextView的文本内容,因此我创建了以下代码:

UITextView变量:

@IBOutlet weak var textView: UITextView!

清除UITextView的功能:

@IBAction func ClearButtonTapped(_ sender: UIButton) {
        textView.selectAll(textView)
        if let range = textView.selectedTextRange { textView.replace(range, withText: "") }
    }

轻按清除按钮时,该功能检查UITextView中是否有任何文本,如果有的话,它将选择UITextView中的所有文本并将其替换为空String

编辑

还有一种简单的方法,由于某种原因,我之前尝试过该方法不起作用(可能是因为Xcode 10.1中的错误),但是,这种方式用户无法撤消如果他们不小心点击了清除按钮

@IBAction func ClearButtonTapped(_ sender: UIButton) {
   textView.text = ""
}

或带有扩展名:

extension UITextView {
    func clear() {
        self.text = ""
    }
}

要清除文本,请致电textView.clear()