`
janedoneway
  • 浏览: 569583 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

UITextField Delegate 无法获取中文字符

 
阅读更多

From:http://www.cnblogs.com/mew7wo/archive/2011/10/12/2209019.html

 

UITextField delegate 有几个方法可以获取text

一般就用这两个

- (void)textFieldDidEndEditing:(UITextField *)textField

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

 

第一个方法是在编辑结束,也就是keyboard dimiss后才调用。所以,第一个方法有那么个缺陷,那就是,当用户没有dimiss键盘就返回的话,实际上是还未获取textfield的text

第二个方法是当text改变的时候,它就立刻调用,所以能动态记录用户的输入。但是,它也有个缺陷(不知算不算是bug),那就是当用户输入中午的时候,此方法中的参数string只

是字母,而不是中文。也就是:当你输入zhang(张)的时候,它记录的分别是z h a n g.所以,对于中文的话,也就无法动态获取了。

 

解决的办法就是给textfield加个状态监听器

复制代码
- (void)viewDidLoad
{
[_textField addTarget:self action:@selector(textFieldEditChanged:) forControlEvents:UIControlEventEditingChanged];

[super viewDidLoad];
}

- (void)textFieldEditChanged:(UITextField *)textField
{
NSLog(@"textField text : %@", [textField text]);
}
复制代码

这样,无论是字母还是中文,都能动态获取

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics