我有一个小的UIView,我隐藏/显示以向用户显示消息。消息本身位于UITextView中,我将其添加到显示的小UIView中。
滑入和滑出工作正常 - 但先前的消息未被清除。我花了足够的时间来解决问题 - 但无济于事。有人能借我的眼睛!!
以下是以编程方式创建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]
}
答案 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]];