Objective-C,改变NSButton功能?

时间:2012-09-09 21:08:43

标签: objective-c cocoa nsbutton

如何更改我之前使用的按钮的功能?例如,如果我有一个按钮进行“继续/取消”并让我们说“继续”,按钮会变为“查看/返回”等内容?基本上我想重复使用相同的按钮,但我不知道有人可以帮助我更好地理解它。谢谢。

- (IBAction)someButton:(NSButton *)sender {

       if ([someString isEqualToString:someThing]) {
            isAllowed = YES;
            [oneButton setTitle:@"Proceed"];
            [self continue];
        }
        else {
            [oneButton setTitle:@"Cancel"];
            return;
            }
        }

- (void)continue {

// I would like to make someButton (above) take on different functionality 
// here if that's even possible. such as:

  [oneButton setTitle:@"View"];
  [self whatNow];

1 个答案:

答案 0 :(得分:3)

在程序生命周期的某个时刻,您可以将NSButton之前的目标和/或操作替换为所需的目标和/或操作。

[oneButton setAction:@selector(continue)];

这将导致continue选择器被调用,而不是someButton:实例的oneButton

OBS:只需注意你的选择器,因为NIB文件中的一个参数为@selector(someButton:)而你正在创建的那个没有任何参数,所以它保持为@selector(continue)

如此处所示:Cocoa forControlEvents:WHATGOESHERE