2011-10-11 39 views
0

我有我在代码创建一个UITextView:怪异的UITextView行为

myView = [[UITextView alloc] initWithFrame:CGRectMake(10,5,220,50)]; 
myView.editable = YES; 
myView.font = [UIFont fontWithName:@"Helvetica" size:16]; 
myView.bounces = NO; 
myView.delegate = self; 

予设定的UIView * MyView的在报头以及.. ,还可以设置代表 - 的UIViewController UITextViewDelegate>

我想要隐藏标签,每当用户写一个文本 因为我检查它是否等于0,否则它的隐藏。

的问题是这种方法 -

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 
    if(textView.text.length == 0) 
     descLabel.hidden = NO; 
    else 
     descLabel.hidden = YES; 

    return YES; 
} 

程序运行,但是当我进入的第一个字母的标签仍然存在, 当我进入第二个字母它去,因为它应该。然后我删除这两个,它仍然不见了! (提醒:我希望标签在长度为0时被隐藏),但是当我再次按下删除时,我可以看到标签。很奇怪..

我想有一个占位符的UITextView中的行为,但这个问题烦

感谢您的帮助!

回答

4

您正在检查更改前的textView.text值;你可能想要在应用更新之后检查长度。

例如为:

NSString *newString = [textView.text stringByReplacingCharactersInRange:range withString:text]; 
+0

哇感谢保罗! :)真的救了我的一天,工作很好。 –