立即从UITextField更新UITextView字符串



我有一个UITextView,说"这个汉堡是______",我有一个空的UITextField在它下面。我想要它,所以你输入到UITextField的每一个字符,UITextView被立即更新。

现在,我已经实现了这个

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
NSString *stringWithTasty = [TextThisBurgerIs.text stringByAppendingString:newString];
[TextThisBurgerIs setText:stringWithTasty];
return YES;
}

当我运行应用程序时,我想在UITextField中输入tasty,这是我得到的UITextView:

UITextView: "This burger is t ta tas tast tasty"
UITextField: "tasty"

它正在用我正在制作的字符串的新版本替换"这个汉堡是_____"字符串。我将UITextField设置为委托

想买

.

这是一个容易犯的错误:)

问题是您正在向已经存在的字符串追加文本:

NSString *stringWithTasty = [TextThisBurgerIs.text stringByAppendingString:newString];

当你按"t"时,你会得到"This burger is t"。

接下来,当你按下"a"时,你将"ta"附加到已经包含在文本视图中的字符串(即"This burger is t")。因此结果是"This burger is t that "。

你需要做的是存储原始字符串"This burger is",你应该有:

NSString *stringWithTasty = [originalString stringByAppendingString:newString];

其中originalString是@"This burger is"。

或者你可以简单地写:

NSString *stringWithTasty = [@"This burger is" stringByAppendingString:newString];

最新更新