Objective-C,改变 NSButton 功能?

标签 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];

最佳答案

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

[oneButton setAction:@selector(continue)];

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

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

如下所示:Cocoa forControlEvents:WHATGOESHERE

关于Objective-C,改变 NSButton 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12342998/

相关文章:

objective-c - Cocoa 多值 bool 绑定(bind),使用逻辑 OR

ios - 调试 Firebase 崩溃报告 - CALayer 位置包含 NAN

objective-c - 如何快速获取当前屏幕上所有窗口的列表?

cocoa - 使用 CoreAnimation 实现全屏动画效果?

macos - NSButton 中的 NSProgressIndicator

cocoa - 我如何在自定义类中创建 `IBOutlet` 或 `IBAction`

cocoa - 禁用的圆形纹理 NSButton 中的文本不会变灰

iphone - 将后退按钮添加到 View Controller

objective-c - 以编程方式在 macOS 应用程序中创建和定位 NSButton?

ios - 为什么清除 Derived Data 可以清除 Xcode 中的各种错误?