2011-11-05 77 views
0

我有一個小UIView,我隱藏/顯示給用戶顯示一條消息。消息本身在UITextView中,我添加到顯示的小UIView中。UITextView文本不會被清除

滑入和滑出工作正常 - 但先前的消息未被清除。我花了足夠的時間來解決問題 - 但無濟於事。有人能借我他們的眼睛!

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

我的肢體,走出去,問你爲什麼要使用一個UITextView 。我老實說從未需要使用UITextView。嘗試將其更改爲UILabel並查看問題是否特定於UITextView。如果你絕對需要UITextView,請在評論中告訴我,但是我懷疑UILabel是你所追求的。

看來您每次都將其添加爲子視圖。所以你實際上創建了多個UITextView,並將它們相互疊加。您可能需要刪除FromSuperview或只設置實例變量的文本。

以這兩條線出來showMsg,並把它們在viewDidLoad中:

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

嗨溫尼..... 1.我開始使用的UILabel,但一些消息要顯示的長度大於什麼會適合標籤 - 所以現在我使用UITextView。你讓我正確的道路 - 增加了多個子視圖。現在問題解決了! :) 謝謝。 – Sam