2009-12-31 5 views
0

이것은 아마도 대답하기 쉬운 질문 일 것이지만, 내 인생에서 나는 이것을 작동시키지 못합니다.맞춤 클래스 - IBOutlet이 작동하지 않습니까?

Objective-C로 Mac OS X 용으로 개발 중이며 맞춤 클래스 (AppController.h 및 .m)를 만듭니다. 필자는 두 개의 IBOutlet (NSTextField, NSImageView)을 손으로 썼고 .m 파일의 .h 및 @synthesize에서 "@property"행을 확인했습니다. Interface Builder에서 NSObject 파일을 드래그하고 클래스를 AppController로 설정 한 다음 연결을 만들어 링크를 만들었습니다.

오류가 발생하지 않지만 다음과 같은 매우 간단한 호출을 할 때 : [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 

당신은 어떤 액세스 할 수 없습니다

#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); 
} 

답변

2

main.m N 개의 콘센트 중 IB 파일을 완전히로드 할 때까지 AppController에서 -awakeFromNib를 재정의하고 거기에서 -startUp을 호출하십시오.

+0

이렇게했습니다. 정말 고맙습니다. 그 점을 이해하는 데 오랜 시간이 걸렸을 것입니다. –

관련 문제