我尝试了所有方法,但没有用,因为我的逻辑技能很差......问题是我需要用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”的坐标? 请提前帮助我们。
答案 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];
然后再将字符串从数组中删除。