UITextView文本未被清除

时间:2011-11-05 21:36:26

标签: uitextview

我有一个小的UIView,我隐藏/显示以向用户显示消息。消息本身位于UITextView中,我将其添加到显示的小UIView中。

滑入和滑出工作正常 - 但先前的消息未被清除。我花了足够的时间来解决问题 - 但无济于事。有人能借我的眼睛!!

enter image description here

以下是以编程方式创建UITextField的方法:

@interface MessageVC : UIViewController {
    UITextView    *messageTV;
}
@property (nonatomic, retain) UITextView    *messageTV;

- (id)init;
- (void)showMsg:(NSString *)title;
@end

- (id)init {
  if (self = [super init]) {      
      self.view = [[[UIView alloc] initWithFrame:CGRectMake(0, 380, 320, 100)] autorelease];
      [self.view setBackgroundColor:[UIColor blackColor]];
  }
  return self;
}


- (void)showMsg:(NSString *)title {
    [self setMessageTV : [[UITextView alloc] initWithFrame:CGRectMake(5, 5, 315, 90 )]];
    [[self messageTV] setBackgroundColor : [UIColor greenColor]];
    [[self messageTV] setTextColor : [UIColor whiteColor]];
    [[self messageTV] setText:@""];                            <<<<<<<< - does not clear the text
    [[self messageTV] setText : title];

    [self.view addSubview : [self messageTV]];
    [self.view setHidden:NO];
}

- (void) hideMessage {
    [self.view setHidden:YES]
}

1 个答案:

答案 0 :(得分:1)

我会走出困境,问你为什么要使用UITextView。老实说,我从来不需要使用UITextView。尝试将其更改为UILabel并查看问题是否特定于UITextView。如果你绝对需要一个UITextView,请在评论中告诉我,但我怀疑UILabel是你所追求的。

您似乎每次都将其添加为子视图。因此,您实际上是在创建多个UITextView并将它们相互添加。您可能需要removeFromSuperview或只需设置实例变量的文本。

从showMsg中取出这两行并将它们放在viewDidLoad中:

[self setMessageTV : [[UITextView alloc] initWithFrame:CGRectMake(5, 5, 315, 90 )]];
[self.view addSubview : [self messageTV]];