JAH*_*lia 15 iphone cocoa-touch objective-c ios ios6
我有一个UIButton和a UITextField,当按下按钮时,textfield的内容字符串将等于:This is a test string,在这种情况下,如何检测到此文本字段已更改其内容?
ps UITextField's委托方法在这种情况下不起作用
更新:我希望此行为适用于iOS 6+设备.
Seb*_*ian 16
你可以添加UITextFieldTextDidChangeNotification:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(textFieldChanged:)
name:UITextFieldTextDidChangeNotification
object:textField];
Run Code Online (Sandbox Code Playgroud)
textField(param对象)是你的UITextField.
selector是在触发此通知时将调用的方法.
aka*_*kyy 14
也许简单的键值观察会起作用吗?
[textField addObserver:self forKeyPath:@"text" options:0 context:nil];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if([keyPath isEqualToString:@"text"] && object == textField) {
// text has changed
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我刚检查过,它对我有用.
您可以在UIControlEventEditingChanged事件中处理文本更改.因此,当您更改文本programmaticaly时,只需发送此事件:
textField.text = @"This is a test string";
[textField sendActionsForControlEvents:UIControlEventEditingChanged];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11047 次 |
| 最近记录: |