ios - 立即从 UITextField 更新 UITextView 字符串

标签 ios objective-c uitextfield uitextview

我有一个 UITextView,上面写着“This burger is ______”,下面有一个空的 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"

它将“This burger is_____”字符串替换为我正在制作的字符串的新版本。我已将 UITextField 设置为委托(delegate)

暂停。

最佳答案

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

问题是您将文本附加到已经存在的字符串中:

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

当您按“t”时,您会看到“This burger is t”。

接下来,当您按“a”时,您会将“ta”附加到已包含在 TextView 中的字符串(即“This burger is t”)。因此,结果是“This burger is t ta”。

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

NSString *stringWithTasty = [originalString stringByAppendingString:newString];

其中 originalString 是@"This burger is".

或者你可以简单地拥有:

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

关于ios - 立即从 UITextField 更新 UITextView 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32128047/

相关文章:

ios - GameCenter 与 SpriteKit 集成

iphone - mov 0x40(%eax),%eax 是什么意思?

php - 努力将图像从我的 iOS 上传到我的 PHP 服务器

ios - 当应用程序处于后台状态时如何从UIPasteboard获取数据(字符串,URL,图像等)

objective-c - 从 C++ 函数调用 Objective-C 方法?

ios - google map SDK for iOS 中是否有比例控件?

objective-c - 检测 cocoa 中的键盘事件,特别是 Return/Tab 键

ios - ScrollView 存在键盘时文本字段消失

ios - 在 Swift 中指定 UITextField 的边框半径

swift - 快速关闭文本字段