2

我正在尝试启动一个应用程序,除一个按钮外,每个按钮都被禁用。首先,我尝试通过界面构建​​器将它们设置为禁用,然后在需要启用它们时将它们设置为启用。但是,当我调用 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.");
    }
}
4

2 回答 2

3

你在做什么应该工作。我猜对您的按钮的引用是nil. 您可以通过输入以下行来验证这一点:

NSLog(@"loadImageButton = %@", loadImageButton);

applicationDidFinishLaunching:.

也许您只是忽略了在 Interface Builder 中将它们连接起来。

于 2010-11-20T02:26:18.957 回答
0

你的意思是DISABLED还是UNSELECTED

如果禁用,您将无法与按钮进行交互(即触摸它不会产生任何操作),直到您将它们设置回setEnabled:YES

如果选中,则意味着您的 BUTTON 将被分配一个选定的控制状态 ( UIControlStateSelected)。要更改其选定状态,您所要做的就是

[button setSelected:(BOOL)];

如果可以,请将代码粘贴到您正在初始化按钮并设置其属性的位置,这样更容易识别您可能做错了什么。

于 2010-11-20T01:43:08.087 回答