应用程序更新后,UITextView未填充默认文本

时间:2014-04-11 07:19:53

标签: ios core-data uitextfield uitextview

我的应用程序的前提很简单。用户在textFields和textViews中输入一些信息,保存后,TableView将填充该信息(包含Core Data和NSFetchedResultsController的组合)。

在我的应用的第1版中,“添加条目”屏幕只有UITextFields而没有UITextViews。在我的应用程序的1.1版中,我带了一个UITextView笔记。默认文本为“附加注释:”,这是在故事板中设置的。

问题

我所看到的是,如果我在版本1中创建一个条目,然后从Xcode将我的应用程序更新到1.1版,那么当您在UITableView中单击它们时,现有条目不会显示“附加注释: “在UITextView中,直到我实际点击UITextView单元格,在这种情况下,我的shouldBegin方法被调用并显示它。这是不可取的,因为升级的用户应该在UITextView中看到现有条目的“附加说明:”一词。基本上附加注释是一个“占位符”,所以如果你没有输入任何注释,你应该总是看到这些单词。

我在故事板中的UITextView中设置了文本,但似乎没有任何效果。

我有两个不同的视图控制器,用于创建新条目并在Storyboard中编辑条目(由于一些小的调整),如果添加新条目,它会显示“附加注释”一词:“。如果添加新条目但是没有添加任何注释,当你编辑它时,你仍然会看到“附加注释”一词:但是,从应用版本1添加的条目在编辑时没有显示“附加注释:”这个词条目,我不明白为什么会这样。

以下是我的两个主要方法:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {

    if([[textView text] isEqualToString:@"Additional Notes: "]){
        [textView setText:@"Additional Notes:\n"];
    }
    return YES;

}

- (BOOL)textViewShouldEndEditing:(UITextView *)textView {

    if([[[textView text] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] isEqualToString:@""]){
        [textView setText:@"Additional Notes: "];
    }
    return YES;
}

所以我知道我错过了一些东西,但是为什么升级的用户不能在UITextView中显示单词Additional Notes:而不必点击它。

任何指导都会非常感激。

1 个答案:

答案 0 :(得分:1)

只需替换textview文本名称中的txt消息文本

即可
-(void)viewWillAppear:(BOOL)animated
{
 [txtmessage setText:@"Additional Notes:"];
[txtmessage setTextColor:[UIColor lightGrayColor]];

}


- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

if([text isEqualToString:@"\n"])
{
    [textView resignFirstResponder];
    if(txtmessage.text.length == 0){
        txtmessage.textColor = [UIColor lightGrayColor];
        txtmessage.text = @"Additional Notes:";
        [txtmessage resignFirstResponder];
    }
    return NO;
}

if(textView.text.length >=65)
{
    [textView resignFirstResponder];

    return NO;

}
if([text rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]].location == NSNotFound) {
    return YES;

}

[textView resignFirstResponder];
return NO;

return YES;
}

- (BOOL) textViewShouldBeginEditing:(UITextView *)textView
{
if (txtmessage.textColor == [UIColor lightGrayColor]) {
    txtmessage.text = @"";
    txtmessage.textColor = [UIColor blackColor];
}

return YES;
}

-(void) textViewDidChange:(UITextView *)textView
{
if(txtmessage.text.length == 0){
    txtmessage.textColor = [UIColor lightGrayColor];
    txtmessage.text = @"Additional Notes:";
    [txtmessage resignFirstResponder];
}
}