gpt4 book ai didi

iphone - UITextView TextView :shouldChangeTextInRange:replacementText: doesn't fire when deleting large portions of text?

转载 作者:行者123 更新时间:2023-12-03 19:20:58 24 4
gpt4 key购买 nike

我正在尝试为 UITextView 实现字符计数器,但发现计数器在以下情况下不准确:

  • 输入几个文本字符,例如“The”
  • 点击返回 25 次
  • 按住删除按钮删除文本(并按住直到光标到达顶部)
  • 当光标到达顶部时(删除“The”后),计数器仍然显示 UITextView 包含 3 个字符
  • 再次点击删除按钮即可使计数自行更正并显示有 0 个字符

我已经输出了这种情况下的计数器和替换文本的结果,最后的输出如下:

2009-08-06 15:29:14.357 字符:3
2009-08-06 15:29:14.369

因此,当以这种方式集体删除大量换行符(通常可能是大部分文本)时,textView:shouldChangeTextInRange:replacementText: 不会在该序列末尾触发,需要另外点击删除按钮。

我的计数器代码如下:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSString* nextText = [textView.text stringByReplacingCharactersInRange:range withString:text];
int characterCount = [nextText length];

关于如何克服这个问题的任何想法,以便在这种情况下计数是正确的(或者我可能做错了什么)?

最佳答案

我仍然不知道 textView:shouldChangeTextInRange:replacementText: 未被调用的问题,但我刚刚发现将我的计数器代码放入 textViewDidChange: (对于该代码来说这是一个更合乎逻辑的位置)可以按预期工作。

关于iphone - UITextView TextView :shouldChangeTextInRange:replacementText: doesn't fire when deleting large portions of text?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1245336/

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