标签和textview没有响应setText:

时间:2011-08-31 09:26:47

标签: iphone objective-c cocoa-touch

我在Objective-C中正确设置了两个属性:

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

我已经合成了它们并将它们链接到NIB文件中,但是当我开始使用它们时:

if (row==0) {
NSLog(@"First text");
[self.label setText:@"LABEL 1"];
[self.textView setText:@"LABEL 1"];
}
else if (row==1) {
NSLog(@"Second text");
[self.label setText:@"LABEL 2"];
[self.textView setText:@"LABEL 2"];
}

文本没有改变,但是正在调用NSLog而不是setText:我想知道为什么......

4 个答案:

答案 0 :(得分:1)

它应该是一个IBOutlet,您可以在xib中链接它们。


现在您更新了问题,问题可能是您没有将它连接到您的viewcontroller的属性。因此结果。在您的问题中添加更多详细信息。

答案 1 :(得分:1)

  1. 确保Xib和IBOutlet链接正确。
  2. 确保您的标签和testView可见。您可以将背景颜色设置为红色或其他任何与bg不同的颜色,以检查其可见性。
  3. 确保行“[self.label setText:@”LABEL 1“];”跑了。你可以查看NSLog。
  4. 确保行“[self.label setText:@”LABEL 1“];”正在主线程中运行。

答案 2 :(得分:0)

如果您的房产是出口,您应该按如下方式声明:

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

您看到的行为表明您没有正确设置插座。

答案 3 :(得分:0)

第一种方法:

它应该被声明为IBOutlet,你应该像Praveen S所说的那样将它链接到XIB中的标签和textView。

第二种方法:

其他选项如果它不是XIB中的标签,那么您需要分配和初始化标签以设置其文本,即访问其属性/方法/属性。

  UILabel *label = [[UILabel alloc] init];
  [label setText:@"Text"];
  label.frame = CGRectMake(0,0,20,20); 

希望这有帮助。