转载自: http://ask.youkuaiyun.com/questions/3386
用我方法:
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(textFieldTextDidChangeOneCI:)
name:UITextFieldTextDidChangeNotification
object:textfield];
}
然后将你的方法改为:
-(void)textFieldTextDidChangeOneCI:(NSNotification *)notification
{
UITextField *textfield=[notification object];
NSLog(@"%@",textfield.text);
}
本来用它的代理方法:(但发现这样始终不行,因为self.contentField.text 这个值始终比输入框的实际文字少一位,用上边的方法搞定)
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLog(@"字符: %@--%@--%d",self.contentField.text,string,range.location);
if (range.location == 11) {
[[NSNotificationCenter defaultCenter] postNotificationName:GNNotifiIsShowPassTextField object:textField.text userInfo:nil];
return NO; // return NO to not change text
}
return YES;
}
解决输入框文本变更问题的高效方法
本文探讨了在iOS应用中通过改进代理方法,解决输入框文本变更时出现的文本长度错误问题,提供了使用通知中心观察文本更改事件的解决方案,确保获取到的文本与用户实际输入完全一致。
299

被折叠的 条评论
为什么被折叠?



