UITextView在删除后不显示文本

时间:2013-10-16 19:20:01

标签: iphone ios objective-c uikit uitextview

我有一个简单的视图控制器,可以显示UITextViewUILabel。控件添加在故事板上,并作为插座连接到正确的视图控制器代码。它们在故事板上填充了文本,并且在测试时它们可以正常工作。

但后来我尝试从superview中删除控件,然后再次将它们添加为子视图,所以基本上我应该处于和之前相同的状态。

视图控制器的代码如下。

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UITextView *textView;
@property (weak, nonatomic) IBOutlet UILabel *label;

@end

@implementation ViewController

- (void)viewWillAppear:(BOOL)animated
{
    [self.textView removeFromSuperview];
    [self.view addSubview:self.textView];

    [self.label removeFromSuperview];
    [self.view addSubview:self.label];
}

@end

但以下代码的结果是UITextViewtextView变量)未显示,但标签为。如果我在执行self.view.subviews中的代码后打印出self.textViewviewWillAppear的内容,则UITextView处于层次结构中并且具有正确的帧。但是文字根本不可见。

我也试过了:

  • 再次在代码中设置文字
  • 在代码中设置UITextView的背景
  • setNeedsDisplay
  • 上致电UITextView

即使它存在于内存中,也不会返回UITextView。我的解决方案现在是在代码中分配另一个UITextView,但这是一个慢得多的操作。

那么,这里有什么问题?这是UITextView中的错误吗?为什么此代码适用于UILabel而不适用于UITextView

谢谢!

1 个答案:

答案 0 :(得分:0)

确保插座已连接。应填写左侧的灰色圆圈,如下所示:

enter image description here

您可以通过ctrl-dragging再次连接它。您也可以通过检查self.textView是否为零来确认。