如何解决连接动作与目标的NSViewController / NSView错误?

时间:2014-10-28 00:32:31

标签: objective-c xcode cocoa

我有一些默认的NSViewController。在其中我有代码:

- (void)viewDidLoad {

    // Do view setup here.

    NSUserDefaults *defaults = [[NSUserDefaults alloc] init];

    if(![defaults boolForKey:@"isLoggedIn"]){


        NSLog(@"Not logged in... Loading settings");

        NSViewController *settings = [[NSViewController alloc] initWithNibName:@"Settings" bundle:nil];
        [self.view addSubview:settings.view];

    }
    else{
        NSLog(@"Logged in... Loading inbox");
        NSViewController *inbox = [[NSViewController alloc] initWithNibName:@"Inbox" bundle:nil];

        [self.view addSubview:inbox.view];
    }
    [super viewDidLoad];
}

该代码适用于加载视图取决于NSUserDefaults。

但是当我尝试在Inbox.m / Inbox.h中声明某些内容时,我发现了这个错误:

Could not connect the action testView: to target of class NSViewController

在Inbox.m中我有:

- (void)viewDidLoad {
    NSLog(@"Inbox loaded.");

    [super viewDidLoad];
    // Do view setup here.
}

并且NSLog永远不会被执行。我想要连接几个nib和不同的NSViewController。

我的猜测是我正在以错误的方式添加子视图。它就像视觉元素一样,没有别的。

1 个答案:

答案 0 :(得分:0)

我通过以下方式解决这个问题:

    Inbox *inbox = [[Inbox alloc] initWithNibName:@"Inbox" bundle:nil];
    _viewController = inbox;

    //Where _viewController is 
    NSViewController *_viewController; 

    //defined in 
   @interface Default : NSViewController{
       NSViewController *_viewController; 
   }

现在一切正常。