我无法以编程方式更改标签中的文本。如何以编程方式更改在nib文件中创建的UIView中的标签?
当我运行以下代码时,NSLog会显示“将myLabel设置为= Hello World!”,但屏幕上的标签不会更改。
UIViewOverlay *overlayWindow;
overlayWindow = [[[NSBundle mainBundle] loadNibNamed:@"UIViewOverlay" owner:self options:nil] objectAtIndex:0];
[self addSubview:overlayWindow];
[overlayWindow setMyLabel:@"Hello World!"];
我的NIB文件中有一个300x300的窗口,一些标签和按钮。 有一个标签,它连接到插座中的myLabel。 UIView显示,只是该文本不能以编程方式更改。
UIViewOverlay.h
#import <UIKit/UIKit.h>
@interface UIViewOverlay : UIView {
IBOutlet UILabel *myLabel;
}
- (void)setMyLabel:(NSString *) label;
@end
UIViewOverlay.m
#import "UIViewOverlay.h"
@implementation UIViewOverlay
- (void)setMyLabel:(NSString *) label {
myLabel.text = label; // THIS LINE IS NOT WORKING! :-(
NSLog(@"Setting myLabel to = %@", label); // This line is working.
}
@end
在此先感谢..
你说得对'setMyLabel'方法。我将该方法更改为'ssetMyLabel',它工作。谢谢! – AReality
好抓住。使用“set”作为除了显式设置器之外的任何方法的前缀都会引起麻烦。当我发现自己要这样做时,我会迅速将其改为其他内容,如“分配”。当我第一次看到它时,使用“sset”看起来像一个错字。对于稍后阅读此文的人,他们应该意识到这一点。 – Jim
是的..我把它改为“打印”而不是“设置”,读得更好.. – AReality