我想在textview中突出显示的区域添加一个字符串,我的意思是突出显示的区域,蓝线所在的区域。
因此,一旦用户点击按钮,它就会添加一个字符串,其中“蓝线”位于
我使用了stringByAppendingString
但是在单词仅存在后添加了字符串
答案 0 :(得分:3)
您需要使用selectedRange
来找出文本光标的位置。然后使用replaceCharactersInRange:withString:
或insertString:atIndex:
将新文本插入原始文本。然后将文本更新到视图中。
答案 1 :(得分:3)
NSRange range = myTextView.selectedRange;
NSString * firstHalfString = [myTextView.text substringToIndex:range.location];
NSString * secondHalfString = [myTextView.text substringFromIndex: range.location];
myTextView.scrollEnabled = NO; // turn off scrolling
NSString * insertingString = [NSString stringWithFormat:@"your string value here"];
myTextView.text = [NSString stringWithFormat: @"%@%@%@",
firstHalfString,
insertingString,
secondHalfString];
range.location += [insertingString length];
myTextView.selectedRange = range;
myTextView.scrollEnabled = YES;
答案 2 :(得分:1)
即使你不清楚你想要实现什么,似乎你希望用户从文本开始的位置开始编辑文本字段。在这种情况下,您可以参考以下内容:
提示1
将视图控制器(或其他一些适当的对象)设置为文本字段的委托,并实现textFieldDidBeginEditing:方法,如下所示:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
UITextPosition *beginning = [textField beginningOfDocument];
[textField setSelectedTextRange:[textField textRangeFromPosition:beginning
toPosition:beginning]];
}
请注意,setSelectedTextRange:是UITextInput(UITextField实现的)的协议方法,因此您不会直接在UITextField文档中找到它。
提示2
self.selectedTextRange = [self textRangeFromPosition:newPos toPosition:newPos];
提示3