【发布时间】:2012-05-25 15:04:56
【问题描述】:
我整个上午都在寻找解决方案,但还没有找到可行的方法。
我有一个文本视图,其中包含一些我不希望用户能够修改的现有固定文本。在这种情况下,我的每个文本视图都以“1.”、“2.”等开头。他们输入的文本将被编号以供我稍后执行。
我不希望用户能够删除此文本(它本质上是“永久的”)。我也不想让他们开始在这个前置文本的中间添加文本。
为了解决这个问题,我做了:
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if (range.location < 3) return NO;
return YES;
}
这很好用,除了如果用户触摸视图的“1.”、“2.”等部分中的任何位置,它会将光标设置在那里,然后阻止用户输入文本,因为范围位置检查。在这种情况下,我想做的是将光标(可能在 textViewDidBeginEditing 中)设置到视图中文本的末尾。但是,无论我使用什么 selectedRange 组合,我都无法让该死的光标移动到最后。任何帮助将不胜感激。
【问题讨论】:
-
更简单的方法是将您的数字放在一个标签中,正对您的文本视图,以便它们看起来像是同一个句子的一部分。然后,他们将只能更改适当的部分。
标签: ios uitextview