2012-07-27 64 views
0
@interface TestViewController : NSViewController 
@property (nonatomic, retain) IBOutlet NSTextField *myLabel; 

- (IBAction)sendMessage:(NSButton *)sender; 

@end 


@implementation TestViewController 
@synthesize myLabel = _myLabel; 

- (id)init{ 
    self = [super init]; 
    if(self){ 
     [self updateLabel]; 
    } 
    return self; 
} 

- (IBAction)sendMessage:(NSButton *)sender { 
    [self updateLabel]; 
    NSLog(@"Message sent"); 
} 

- (void) updateLabel{ 
    NSLog(@"Update!! %@"); 
    [self.myLabel setStringValue:@"random text"]; 
} 

@end 

我想顯示視圖時更新的NSTextField,我把我的updateLabelinit日誌我看到Update!!中,但NSTextField它不符合我的文字更新。 但是,當我按下按鈕,調用相同updateLabelNSTextField更新。有人能幫我理解爲什麼它不能按預期工作嗎?Objective-C的更新的NSTextField初始化

+0

您是否嘗試在init方法中放入一條日誌語句以確保它被調用? – rdelmar 2012-07-27 02:22:48

+0

我說'init'打印出來'NSLog(@「Update !!%@」);'但是文本中的字段是一樣的 – Constantin 2012-07-27 02:24:40

+0

對不起,錯過了。這可能是因爲在init方法中這樣做在這個過程中爲時尚早。你如何加載視圖控制器的視圖?你在實現loadView嗎?如果是這樣,請嘗試將調用放入updateLabel中。 – rdelmar 2012-07-27 02:33:33

回答

0

我按照@rdelmar的建議使用loadView。謝謝。

這裏是如何實現它,如果任何人感興趣。

- (void)loadView 
{  
    [super loadView]; 
    [self updateLabel];  
}