iOS UITextView - setText方法没有显示我的文字?

时间:2012-01-26 20:48:36

标签: objective-c ios ios5 xcode4.2 uitextview

我已通过以下方式以编程方式创建了UITextView

messageBodyTxt = [[UITextView alloc] initWithFrame:CGRectMake(36, 204, 763, 251)];
[messageBodyTxt setTextColor:[UIColor colorWithRed:0.627 green:0.627 blue:0.627 alpha:1]];
[messageBodyTxt setBackgroundColor:[UIColor clearColor]];
[messageBodyTxt setText:@"some random text"];

但是, setText 属性未显示我的文字。我的头文件如下所示:

#import <UIKit/UIKit.h>

@interface MessageView : UIView {
    UITextView *messageBodyTxt;
}

@end

我已将它添加到我的视图中:

[self addSubview:messageBodyTxt];

当我使用 setText 方法时,我的所有其他UILabel功能都正常,但我似乎无法让UITextView显示任何内容。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

真的很奇怪。我创建了“1视图”项目。 然后: ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController: UIViewController {
    UITextView *exampleTxt;
}

@end

转到ViewController.m(viewDidLoad):

-(void)viewDidLoad{
    [super viewDidLoad];
    exampleTxt = [[UITextView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    [exampleTxt setText:@"Everything Ok"];
    [exampleTxt setColor:[UIColor redColor]]; //yes, it's deprecated, but works
    [self.view addSubview: exampleTxt]; //because its ViewController
}

一切都好。 将viewController链接到MessageView看起来很麻烦。尝试使用Interface Builder。 或者显示更多代码。

答案 1 :(得分:2)

我明白了。父视图的框架太小,没有被剪裁,所以我可以看到视图中的所有其他元素都显示出来,但它们不可点击(例如按钮等)

一旦我将父视图框固定为正确的大小,`UITextView文本就会神奇地出现。

谢谢大家,你做得很棒!