我希望能够随时计算200 - 字符数。 这意味着我想显示字符数,并在用户输入或删除字符时随时更新。
我的代码正确计算200 - 任何时候的字符数,但我不知道如何不断更新文本字段。
-(void)updateLabel{
// Get the text from the message
// find the length of the text
// subtract from the converted number in the charCounter Label
// display in the charCounter Label
int length = _message.text.length;
int charLeft = 200 - length;
NSString* charCountStr = [NSString stringWithFormat:@"%i", charLeft];
_charCounter.text = charCountStr;
}
然后我在viewDidLoad中调用updateLabel函数。
我怀疑必须有一些其他功能来持久更新viewController
答案 0 :(得分:4)
只需实现UITextFieldDelegate方法textField:shouldChangeCharactersInRange:replacementString:
并从中调用updateLabel方法。
只要用户在文本字段中键入新字符或删除现有字符,文本字段就会调用此方法。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
[self updateLabel];
return YES;
}
不要忘记设置文本字段的委托属性,并确保您的类符合UITextFieldDelegate。
答案 1 :(得分:0)
您似乎想要一个类似Twitter的动态计数,即用户可以在UITextBox中键入的字符数量。因此,您有200个字符的限制,并且您想要通知用户他或她动态输入了多少字符。
如果您希望每次文本更改时都运行该方法:
// textField is the UITextField you type your text in to.
// this could be a reference to that field via an IBOutlet or you created it manually
[textField addTarget:self
action:@selector(updateLabel)
forControlEvents:UIControlEventEditingChanged];