有以下几点:
// watch the fields
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleTextChange:)
name:UITextFieldTextDidChangeNotification
object:textField1];
然后:
-(void) handleTextChange:(NSNotification *)notification {
...
}
在断点-handleTextChange:
但不被解雇。 文本框被连接在界面生成器。
适用于iOS6的iPhone / iPad的模拟器,在iOS5.1的iPad2,但不能在iOS6的iPad3的。
IRENA是正确的,当文本字段设置编程UITextFieldTextDidChangeNotification不火。 不过,我只是想澄清,它无关,与iOS6的,它与iOS 6的SDK做。 如果你跟iOS 5.1 SDK编译,每当文本字段被改变,编程或以其他方式,即使在iOS 6设备上运行UITextFieldTextDidChangeNotification通知将闪光。
所以我想通了。 什么在iOS6的SDK改变的是,如果你改变文本框的文本编程方式,它不发送通知。 我对所有的这些观点的自定义键盘。 当我上的按键敲击,它改变了通过添加文本字段文本值不管我在打字。在iOS 5中它会发送通知“textdidchange”,但不是在iOS6的。
我的使用情况有点特殊,我创建HH:MM:SS时间的UITextField与字符从后面进入,因此俘获字符- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
,然后再返回return (NO);
禁止的UITextField ...预iOS6的的自动更新,它叫通知,-iOS6的帖子,我只是要求[[NSNotificationCenter defaultCenter] postNotificationName:UITextFieldTextDidChangeNotification object:self.textField];
之前的return
声明。
在我的iPad3和iOS6.0通知UITextFieldTextDidChangeNotification做工精细。 放
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleTextChange:)
name:UITextFieldTextDidChangeNotification
object:textField1];
在您的viewDidLoad
作为临时解决办法,直到苹果修复了这个,你可以使用下面的代码示例:
//view is a UITextField
NSString *temp = ((UITextField*)view).text;
((UITextField*)view).text = @"";
[((UITextField*)view) insertText:[NSString stringWithFormat:@"%@%@", @"-", temp]];
该代码将继续触发事件。
这工作太:
[((UITextField*)view) sendActionsForControlEvents:UIControlEventEditingChanged];