如何用UItextfield替换特定字符

时间:2013-01-28 11:10:58

标签: ios objective-c xcode uitextfield uitextview

我尝试了所有方法,但没有用,因为我的逻辑技能很差......问题是我需要用uitextfield替换句子中的一个单词,这样它看起来像一个空白,而且太动态了

例如:测试到达现场

我需要用UItextfield替换上面句子中的“Test”,这样用户就可以输入uitextfield了。请告诉我更换它的方法..

我使用uitextview来显示问题,代码是

UITextview   *textview = [[UITextView alloc] initWithFrame:CGRectMake(0.0, currentY, 320.0, myStringSize.height)];
textview.text = [NSString stringWithFormat:@"%i. %@", i+1, unhide];
textview.font = [UIFont fontWithName:@"Helvetica" size:16.0f];
CGRect frame = textview.frame;
frame.size.height = textview.contentSize.height;
textview.frame = CGRectMake(0.0, currentY, 320.0, frame.size.height+20);
textview.editable = NO;
[scrollMain addSubview:textview];

有没有办法做到这一点......

或者有没有办法找到textview中“Test”的坐标? 请提前帮助我们。

3 个答案:

答案 0 :(得分:3)

这取代了"测试"用你选择的字符串:

textview.text = [textview.text stringByReplacingOccurrencesOfString:@"test" withString:@"SomeStringToReplaceWithTest"];

答案 1 :(得分:0)

编辑:

选择"测试"在textView中,以编程方式找到其范围

找到所选的文本范围:

UITextRange *selectionRange=[textView selectedTextRange];
CGRect selectionStartRect=[textView caretRectForPosition:selectionRange.start];
CGRect selectionEndRect=[textView caretRectForPosition:selectionRange.end];
CGPoint selectionCenterPoint=(CGPoint){(selectionStartRect.origin.x + selectionEndRect.origin.x)/2,(selectionStartRect.origin.y + selectionStartRect.size.height / 2)};

现在用上面的内容初始化textField.frame

您的文本字段将出现在编写测试的位置。

答案 2 :(得分:0)

执行以下步骤:

NSRange wordRange = NSMakeRange(0,10);
NSArray *firstWords = [[str componentsSeparatedByString:@" "] subarrayWithRange:wordRange];

您将数组元素中的所有单词替换为上述方法之一所需的任何世界。 更新:

    NSString *test=@"Test arrives on the scene";
NSRange wordRange = NSMakeRange(0,10);
NSMutableArray *firstWords = (NSMutableArray *)[[test componentsSeparatedByString:@" "] subarrayWithRange:wordRange];
[firstWords replaceObjectAtIndex:indexOfstringyouWant withObject:yourTextField.text];

然后再将字符串从数组中删除。