Я работаю над приложением, в котором пользователь должен иметь возможность печатать «вперед», но не может удалить ничего (например, вернуться назад и отредактировать), которое уже было набрано.
Есть несколько ответов, примерно то, что я хочу:
как обрабатывать возврат в uitextfield - это старая версия Swift, я думаю, так как после этого у меня появилось много ошибок (не рекомендуется, отсутствуют аргументы и т. д.).Когда я пытался это сделать, я думал о том, чтобы сделать что-то вроде следующего:
func disableBackspace() {
//do a check to see if the range of characters has reduced
if range of characters in the string reduces (<0?) {
//if it has then don't allow the 'character' to be typed
return false
}
}
Так что мне тогда понравился внешний вид этого метода:
хочу узнать время когда нажимаю накнопка возврата на клавиатуре при редактировании текстового поля ios
Итак, я попытался:
func textView(_ textView: UITextView, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
//meant to detect if character was a backspace
let char = string.cString(using: String.Encoding.utf8)
let isBackSpace: Int = Int(strcmp(char, "\u{8}"))
if isBackSpace == -8 {
print("Backspace was pressed")
}
//meant to return false to not allow the backspace
return false
}
И сделал мой VC делегатом textView, выполнив
override func viewDidLoad() {
self.textViewOutlet.delegate = self
super.viewDidLoad()
}
, но этоне работалОн ничего не печатает и все же позволяет пользователю вернуться на задний план.
Любые идеи высоко ценятся!