1

我制作了一个带有两个按钮的工具栏。然后我在我的类控制器中创建了两个插座。然后我将控制器挂在按钮上并选择了插座。

最后我重写了类文件(添加:

IBOutlet id next;
IBOutlet id previous;

到我的 .h 文件)。

所以现在,一切看起来都很好。但后来我尝试在代码中的某个地方更改我的一个按钮的状态,如下所示:

next.enabled = YES;

我尝试了自我。也是,但不幸的是,我收到此错误消息:错误:在非结构或联合的情况下请求成员“启用”

你知道那里发生了什么吗?

是的,我有:

#import <UIKit/UIKit.h>

:)

使用:

[next setEnabled:YES];

没有给我任何错误,但仍然无法正常工作...

最后,为了记录目的,这里是整个方法:

- (void)viewDidLoad {
    [super viewDidLoad];

     if (!self.currentLevel) {
          self.currentLevel = @"1";
     }

     NSArray *etape = [self.etapes objectForKey:self.currentLevel];
     if ([etape count] > 0) {
          self.navigationItem.title = [etape objectAtIndex:1];
          if ([etape count] > 1) {
               [next setEnabled:YES];
          }

     } else {
          self.navigationItem.title = @"Aucune étape";
     }
}

当我做:

NSLog(@"%@", [next class]);

它返回(null)......我猜它应该是 UIBarButtonItem......

即使我在玩它们时没有收到任何错误,似乎也不可能与任何网点一起玩......

4

2 回答 2

1

那应该是:

IBOutlet UIButton * next;
IBOutlet UIButton * previous;
于 2010-03-22T20:01:26.573 回答
0

我不确定 iphone SDK 因为我不使用它,但是您可以使用以下方法启用/禁用工具栏项。我通常使用按钮的标签来识别我定位的按钮。

-(BOOL)validateToolbarItem:(NSToolbarItem*)theItem {
    BOOL shouldEnable = YES;
    NSString* itemLabel = [theItem label];
    if ([itemLabel isEqualToString:@"next"]) {
        shouldEnable = NO;
    }
    return shouldEnable;
}
于 2010-03-23T02:06:39.587 回答