iOS - 在单词之前和之后附加字符串

时间:2014-03-05 12:55:47

标签: ios objective-c string uitextview

我想在textview中突出显示的区域添加一个字符串,我的意思是突出显示的区域,蓝线所在的区域。

因此,一旦用户点击按钮,它就会添加一个字符串,其中“蓝线”位于

我使用了stringByAppendingString但是在单词仅存在后添加了字符串

3 个答案:

答案 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

finding-the-cursor-position-in-a-uitextfield/