1

我有三个 IBAction,每个都与它自己的按钮链接,如下所示:

#import "Controller.h"
#import "Application.h"

@implementation Controller
- (IBAction)deal:(id)sender {
    NSButton *deal = (NSButton *)sender;
    ...
}

- (IBAction)hit:(id)sender {
    NSButton *hit = (NSButton *)sender;
    ...
}

- (IBAction)stay:(id)sender {
    NSButton *stay = (NSButton *)sender;
    ...
}
@end

您如何在其范围之外使用/调用按钮?我想做这样的事情:

 - (IBAction)hit:(id)sender {
    NSButton *hit = (NSButton *)sender;
    ...
    [hit setEnabled: NO];
    [stay setEnabled: NO]; // Using/altering "Stay's" button
}

提前致谢!

4

2 回答 2

1

IBAction 是 void 的 typedef,用于标记您希望 Interface Builder(或 Xcode 4 的界面设计器发现)的方法。它们只是普通方法,没有任何外部链接。

您可能想要的是一些连接到按钮的 IBOutlets。例如,要连接到点击按钮,您可以将其添加到您的@interface:

IBOutlet NSButton *hit;

然后在 Interface Builder 或 Xcode 中,您应该能够控制并从您的类中拖动链接到按钮并连接出口——这与您将按钮事件有效地连接到您的类的操作相反。

因为 hit 是一个实例变量,所以您可以从类中的任何方法访问它。

于 2011-07-15T00:35:36.413 回答
1

您可以在视图控制器中将 NSButton 属性声明为 IBOutlet,然后在 Interface Builder 中,您可以将按钮与其链接。

就像是:

@property (nonatomic, assign) IBOutlet NSButton * button;
于 2011-07-15T00:35:46.413 回答