gpt4 book ai didi

swift - 识别 TextView 中不可见的字符

转载 作者:行者123 更新时间:2023-11-30 12:48:56 26 4
gpt4 key购买 nike

我在 TableView 单元格内有一个可编辑 TextView ,maximumNumberOfLines 设置为 4,lineBreakMode 设置为 byClipping。这几乎按预期工作,但是似乎您可以输入超过 TextView 的宽度,如下所示:

Infinite typing

虽然字符不可见,但它们存储在某处,因为为了返回可见文本,需要删除在边界之外输入的内容。

我正在努力寻找这些不可见字符的独特之处,因此一个简单的 deleteBackward() 可以在 if 语句中完成这项工作。这样,用户就无法实际键入超出 TextView 的边界。

我可以在 textView:shouldChangeTextIn 中识别这些不可见字符,因此我deleteBackwards() 并使类型无效?

最佳答案

将其放入您的 UITextViewDelegate 中:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if text.isEmpty { // Always allow backspace
return true
}
let numLines: Int = Int(textView.contentSize.height/textView.font!.lineHeight);
return numLines <= 4
}

最好将硬编码的 4 换成一个好的常量或其他东西。

注意:这可能会在“第五”行允许 1 个额外字符。为了避免这种情况,您需要添加额外的代码来预测内容大小并做出相应的响应。

关于swift - 识别 TextView 中不可见的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41253284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com