如果我有一个包含以下文本的 UITextView:
“请完成此发送...”
目的是允许用户编辑 TextView ,以便他们可以完成句子,我怎样才能使他们无法删除开始编辑之前存在的文本,即“请完成此发送” “?
更新:我已经能够使用户无法删除初始文本,但是有什么方法可以使他们无法在初始文本之前或内部键入?感谢到目前为止所有回答的人!
更新:已解决。为了阻止人们在字符串之前和内部进行编辑,我简单地添加了
if range.location == 0 {
return false
}
if (0 < range.location && range.location < count(string.utf16)) == true {
return false
}
到shouldChangeTextInRange函数。谢谢大家的帮助!
最佳答案
这样您就可以阻止用户删除初始文本:
import UIKit
class ViewController: UIViewController, UITextViewDelegate {
@IBOutlet weak var textV: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
textV.text = "Please finish this sent" //Set your default text.
textV.delegate = self
}
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
let char = text.cStringUsingEncoding(NSUTF8StringEncoding)!
let isBackSpace = strcmp(char, "\\b")
if (isBackSpace == -92) {
// If backspace is pressed this will call
if textV.text == "Please finish this sent" {
return false
}
}
return true
}
}
关于ios - 停止删除 TextView 中的默认文本(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31569457/