没有文本时,textView.text属性不是nil

时间:2014-07-29 18:57:25

标签: ios objective-c uitextview

我有一个UITextView,用户可以填写文本(并且该应用程序退出后文本仍然存在)。我想在空视图上放置一个标签(当没有文字时)以帮助用户理解,他可能想点击这里并添加文字。我的问题是,我无法弄清楚如何检查textView.text是否为空。这就是我的尝试:

if (self.descriptionTextView.text != nil){
    isInformed = YES;
    NSLog(@"here is text");
} else {
    isInformed = NO;
    NSLog(@"no text");
}

isInformed是一个布尔值,我想用它来指示descriptionTextView字段为空的位置。不知何故,"here is text"总是在控制台中显示,即使视图中没有文本也是如此。为什么会这样?如何正确检查?

任何建议都将受到赞赏。

3 个答案:

答案 0 :(得分:4)

您还应检查文本是否等于@"",这只是一个空字符串。

您可以通过以下方式解决此问题:

if (self.descriptionTextView.text.length > 0){
    // Do stuff for text
}   else {
    // Do stuff for nil text or empty string
}

答案 1 :(得分:4)

这是一个更简单的解决方案,它将考虑nil和@“”条目:

if (self.descriptionTextView.text.length > 0){
    isInformed = YES;
    NSLog(@"here is text");
}   else {
    isInformed = NO;
    NSLog(@"no text");
}

只需检查输入的文本长度是否大于零,即可知道文本视图不为空。

答案 2 :(得分:2)

尝试:

if ([self.descriptionTextView.text length] > 0){
    // Log something for a text length greater zero
} else { // Log something for an empty string
    }