如何在其范围之外使用IBAction按钮

时间:2011-07-15 00:28:48

标签: objective-c ibaction nsbutton

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

#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
}

提前致谢!

2 个答案:

答案 0 :(得分:1)

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

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

IBOutlet NSButton *hit;

然后在Interface Builder或Xcode中,您应该能够控制 - 将类中的链接拖到按钮并连接插座 - 与您将按钮事件连接到您的班级所做的相反

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

答案 1 :(得分:1)

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

类似的东西:

@property (nonatomic, assign) IBOutlet NSButton * button;