iOS-在单词前后追加字符串

iOS-在单词前后追加字符串,ios,objective-c,string,uitextview,Ios,Objective C,String,Uitextview,我想在textview的突出显示区域中添加一个字符串,我指的是突出显示区域,即蓝线所在的区域 因此,一旦用户单击按钮,它就会在“蓝线”所在的位置添加一个字符串 我使用了stringByAppendingString,但它会在单词只存在后添加字符串您需要使用selectedRange查找文本光标的位置。然后使用replaceCharactersRange:with字符串:或insertString:a索引:将新文本插入原始文本。然后将文本更新到视图中。即使不清楚您想要实现什么,但似乎您希望用户从

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

因此,一旦用户单击按钮,它就会在“蓝线”所在的位置添加一个字符串


我使用了
stringByAppendingString
,但它会在单词只存在后添加字符串

您需要使用
selectedRange
查找文本光标的位置。然后使用
replaceCharactersRange:with字符串:
insertString:a索引:
将新文本插入原始文本。然后将文本更新到视图中。

即使不清楚您想要实现什么,但似乎您希望用户从文本开始的位置开始编辑文本字段。在这种情况下,您可以参考以下内容:

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; 
提示1

将视图控制器(或其他适当的对象)设置为文本字段的委托,并实现textFieldDidBeginEditing:方法,如下所示:

- (void)textFieldDidBeginEditing:(UITextField *)textField
 {
    UITextPosition *beginning = [textField beginningOfDocument];
    [textField setSelectedTextRange:[textField textRangeFromPosition:beginning
                                                      toPosition:beginning]];
 }
请注意,setSelectedTextRange:是UITExtOutput(UITextField实现)的协议方法,因此您无法直接在UITextField文档中找到它

提示2

self.selectedTextRange = [self textRangeFromPosition:newPos toPosition:newPos];
提示3


文本是UITextView,是不可变的,因此您不能更改其上的文本。您必须输入新文本才能在其上显示。@HimanshuJoshi您始终可以设置占位符文本,然后点击按钮,您可以清除文本字段以输入新文本,或者根据问题,根据您的问题放置光标needs@kevinmartin检查我的答案。这就是你要找的吗?@madLokesh我是说你不能编辑UItextField的文本,你必须创建一个新字符串,或者只是覆盖以前的文本来进行更改