NSButton - 来自另一个Class的setEnabled不起作用

时间:2014-04-27 07:49:16

标签: objective-c macos cocoa nsbutton

我对Objective-C和Cocoa相对较新,所以如果这太明显或我的术语不正确,请原谅。我没有找到答案就彻底搜索了文档和网页。到目前为止,我一直在向其他类的方法发送消息而没有问题。

我有两个课程:MainWindowControllerServerControl

我在MainWindowController中有一个名为startServer的实例方法,如下所示:

- (void)startServer 
{
    NSLog(@"Running startServer from MainWindowController");
    [startButton setEnabled:NO];
    [restartButton setEnabled:YES];
    [shutdownButton setEnabled:YES];
}

当我从startServer内从另一个实例方法向MainWindowController发送消息时,我得到了预期结果:NSLog执行,并且启用和禁用了三个NSButton正确。

当我在这样的实例方法中从startServer内向ServerControl发送消息时:

// Update buttons
MainWindowController *mainWindowController = [[MainWindowController alloc] init];
[mainWindowController startServer];

NSLog会执行但NSButton未按预期启用和停用。

我也尝试过使用属性并在setEnabled课程中设置ServerControl选项,但这也不起作用。

感谢您的帮助。

0 个答案:

没有答案