我正在尝试启动一个应用程序,除了一个按钮,每个按钮都被禁用。首先,我尝试通过界面构建器将它们设置为禁用,然后在需要启用它们时将它们设置为启用。但是,当我调用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.");
}
}
答案 0 :(得分:3)
你在做什么应该工作。我猜你的按钮引用是nil
。您可以通过以下行来验证这一点:
NSLog(@"loadImageButton = %@", loadImageButton);
applicationDidFinishLaunching:
中的。
也许你只是忽略了在Interface Builder中连接它们。
答案 1 :(得分:0)
您的意思是已禁用或未选择?
如果停用,则在将其设置回setEnabled:YES
如果选中,则表示您的BUTTON将被分配一个选定的控制状态(UIControlStateSelected
)。要更改其选定状态,您所要做的就是
[button setSelected:(BOOL)];
如果可以,请将代码粘贴到初始化按钮并设置其属性的位置,以便更容易识别出错误的原因。