我正在尝试启动一个应用程序,同时禁用除一个按钮之外的所有按钮。首先,我尝试通过界面生成器将它们设置为禁用,然后在需要启用它们时将它们设置为启用。然而,当我调用 setEnabled: 它实际上并没有启用它们(我什至做了 NSLogs 来看看它是否到达那里!)。其次,我还尝试在代码中将它们初始化为禁用(在 applicationDidFinishLaunching: 方法内),然后再次将它们设置为启用,但这仍然不起作用。有人建议我在需要时尝试禁用/启用它们吗?
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[loadImageButton setEnabled:NO];
[autoFitButton setEnabled:NO];
[estimateAgeButton setEnabled:NO];
[ageProgressButton setEnabled:NO];
}
- (IBAction)loadAAMModel:(id)sender
{
...
...
if (waam.ModelLoaded) {
[modelNameLabel setStringValue:f];
[svmLabel setStringValue:svmPath];
[ageTableLabel setStringValue:ageTable];
NSLog(@"model loaded...set loadImageButton to Enabled!");
[loadImageButton setEnabled:YES];
NSLog(@"loadImageButton set to Enabled.");
}
}
最佳答案
你正在做的事情应该有效。我猜测对您的按钮的引用是nil
。您可以通过输入如下行来验证这一点:
NSLog(@"loadImageButton = %@", loadImageButton);
在applicationDidFinishLaunching中:
。
也许您只是忘记在 Interface Builder 中将它们连接起来。
关于objective-c - NSButton setEnabled 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4230757/