Objective-C,更改NSButton功能?

Objective-C,更改NSButton功能?,objective-c,cocoa,nsbutton,Objective C,Cocoa,Nsbutton,如何更改以前使用的按钮的功能?例如,如果我有一个按钮是“继续/取消”的,假设你是“继续”的,那么这个按钮会变成“查看/返回”之类的东西吗?基本上,我想在其他事情上重复使用同一个按钮,但因为我不知道怎么可能有人能帮助我更好地理解它。多谢各位 - (IBAction)someButton:(NSButton *)sender { if ([someString isEqualToString:someThing]) { isAllowed = YES;

如何更改以前使用的按钮的功能?例如,如果我有一个按钮是“继续/取消”的,假设你是“继续”的,那么这个按钮会变成“查看/返回”之类的东西吗?基本上,我想在其他事情上重复使用同一个按钮,但因为我不知道怎么可能有人能帮助我更好地理解它。多谢各位

- (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];

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

[oneButton setAction:@selector(continue)];
这将导致调用
continue
选择器,而不是
oneButton
实例的
someButton:

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


如图所示:

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

[oneButton setAction:@selector(continue)];
这将导致调用
continue
选择器,而不是
oneButton
实例的
someButton:

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


如图所示:

谢谢-我将尝试一下。我还有一个问题;有可能让一个按钮同时指向两种方法吗?@JoeHabadas是的,当然!同一uicontrol事件可以有多个目标/操作对,请记住,它们将按照添加的相同顺序启动。因此,可以立即删除所有目标/操作:-我将为此添加编辑:)非常感谢Felipe。我试着用可可粉;你知道Mac相当于uicontrolEventEvents等吗?@JoeHabadas嗯抱歉,我完全忽略了问题中的
nsbutton
,选择了uibutton方法谢谢-我会尝试一下。我还有一个问题;有可能让一个按钮同时指向两种方法吗?@JoeHabadas是的,当然!同一uicontrol事件可以有多个目标/操作对,请记住,它们将按照添加的相同顺序启动。因此,可以立即删除所有目标/操作:-我将为此添加编辑:)非常感谢Felipe。我试着用可可粉;你知道Mac相当于uicontrolEventEvents等吗?@JoeHabadas-hmm抱歉,我完全忽略了问题中的
nsbutton
,选择了uibutton方法