问题:
我需要检测何时点击退格键并返回到上一行。
我们怎么能检测到一个退格键,它把我们带回到文本视图的上一行,而不是一个新行,而是上一行。
例如:我们可以通过给定的代码检测新行
if (text == "\n"){
print("new line")
}
我们可以侦测到退格键。
if (range.length == 1 && text.isEmpty){
print("backspace pressed on keyboard")
}
**伪代码:**我们如何检测到一个退格键,它将我们带回到文本视图中的上一行,而不是一个新行,而是上一行。
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if (range.length == 1 && text.isEmpty){
print("backspace pressed on keyboard")
if (backspace brought textview cursor back to its previous line){
}
}
键盘输入:
按下return-〉转到新行
按退格键-〉返回到上一行
1条答案
按热度按时间gdx19jrr1#
给出了过于简单的示例,您可以检查文本视图中更改范围的当前文本是否等于换行符。
请记住,文本视图中的文本可以换行而无需输入换行符。这对于您的用例可能很重要,也可能不重要。这也意味着文本可以“展开”而无需删除换行符。
你似乎在假设光标在文本的末尾。不确定你想如何处理用户删除中间的某个地方。或者用户选择一堆文本并删除呢?
还要注意,你的退格键检查并不是真正的退格键检查,如果用户选择一个字符,然后选择剪切菜单,也可以满足这个条件。