objective-c - NSButton setEnabled 不起作用

标签 objective-c user-interface interface-builder nsbutton

我正在尝试启动一个应用程序,同时禁用除一个按钮之外的所有按钮。首先,我尝试通过界面生成器将它们设置为禁用,然后在需要启用它们时将它们设置为启用。然而,当我调用 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/

相关文章:

ios - 从应用程序检索的数据显示的数据与解析数据浏览器不同

iphone - 使用 BWToolkit 框架 API

ios - 选择泛化或关联(聚合)

objective-c - AFNetworking 没有弧线的旧版本

java - 添加使用面板作为子容器的方法

Python GUI 应用分发 : written in wxPython, TKinter 或 QT

Android 9 补丁背景图像初始 PNG 大小?

ios - 调整 UIView 的大小以便 UIScrollView 可以工作

ios - 如果标签重叠,应如何设置应截断哪个标签?

MapKit/SDWebImage 中的 iOS 内存不足警告