这可能是一个非常容易回答的问题,但对于我的生活,我似乎无法让它发挥作用。
我正在使用Objective-C为Mac OS X开发,我创建了一个自定义类(AppController.h和.m)。我手写了两个IBOutlets(NSTextField,NSImageView),确保在.h中执行“@property”行,在.m文件中执行“@synthesize”。我确保通过拖动NSObject文件并将其类设置为AppController,然后进行连接,在Interface Builder中链接它们。
我没有收到任何错误,但是当我做一个非常简单的调用时: [title setAlphaValue:0.0];
没有任何反应。你们可以解决的任何问题都会很棒。我的代码:
AppController.h
#import <Cocoa/Cocoa.h>
@interface AppController : NSObject {
IBOutlet NSImageView *movie_icon;
IBOutlet NSTextField *title;
}
-(void)startUp;
@property (nonatomic, retain) NSImageView *movie_icon;
@property (nonatomic, retain) NSTextField *title;
@end
AppController.m
#import "AppController.h"
@implementation AppController
@synthesize title;
@synthesize movie_icon;
-(void)startUp{
NSLog(@"Starting App Controller...");
[title setAlphaValue:0.0];
}
@end
的main.m
#import <Cocoa/Cocoa.h>
#include "AppController.h"
int main(int argc, char *argv[])
{
AppController *ctrl;
ctrl = [[AppController alloc] init];
[ctrl startUp];
return NSApplicationMain(argc, (const char **) argv);
}
答案 0 :(得分:2)
在完全加载之前,您将无法访问NIB文件中的任何插座。尝试覆盖AppController中的-awakeFromNib,并从那里调用-startUp。