UITextField文本更改事件
我如何检测textField中的任何文本更改? delegate方法shouldChangeCharactersInRange
适用于某些东西,但它并没有完全满足我的需要。 自从它返回YES以来,textField文本对其他观察者方法不可用。
例如在我的代码中, calculateAndUpdateTextFields
没有得到更新的文本,用户输入了。
他们有什么办法可以获得像textChanged
Java事件处理程序这样的东西。
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
{
if (textField.tag == kTextFieldTagSubtotal
|| textField.tag == kTextFieldTagSubtotalDecimal
|| textField.tag == kTextFieldTagShipping
|| textField.tag == kTextFieldTagShippingDecimal)
{
[self calculateAndUpdateTextFields];
}
return YES;
}
从正确的方式做uitextfield文本更改回调:
我捕获了发送到UITextField控件的字符,如下所示:
// Add a "textFieldDidChange" notification method to the text field control.
[textField addTarget:self
action:@selector(textFieldDidChange:)
forControlEvents:UIControlEventEditingChanged];
然后在textFieldDidChange:方法中,您可以检查textField的内容,并根据需要重新加载您的表视图。
你可以使用它并将calculateAndUpdateTextFields作为selector
。
XenElement的答案是现货。
上述操作也可以在界面生成器中完成,方法是右键单击UITextField并将“编辑已更改”发送事件拖到您的子类单元中。
设置事件监听器:
[self.textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
真正听:
- (void)textFieldDidChange:(UITextField *)textField {
NSLog(@"text changed: %@", textField.text);
}
链接地址: http://www.djcxy.com/p/28169.html
上一篇: UITextField text change event
下一篇: GCD and KVO problems