NSButton 推入推离类型

NSButton Push On Push Off Type

我是新手,正在学习。我在 iOS 中看到过许多 NSSwitch 按钮的示例,但我无法让 Push On / Push Off 类型的按钮在 MacOS Obj-C 中工作。

举个简单的例子:

当程序加载时,按下/关闭样式按钮处于非活动状态(在默认状态下)。我还有一些其他按钮也处于活动状态。

当按下(激活)按钮类型时,我想禁用其他按钮并更改文本标签以显示 INACTIVE。

再次按下按钮时(未激活)我想启用其他按钮并再次更改文本标签。

我的代码只需按一下即可运行 - 意思是,我启动程序并按下按钮,其他按钮禁用,文本标签发生变化。

但是,第二次按下不起作用。按一下后按钮停止并且不能作为 "switch." 使用 iOS 开关按钮你可以检查 isOn 状态,但我只能在 MacOS 上找到 "isEnabled"。

MacOS 的按下/按下样式按钮状态的任何示例 Objective-C?

- (IBAction)playButton:(id)sender {
    if (self.playButton.isEnabled) {
        self.textLabel.title = @"INACTIVE";
        [self.Visual01Menu setEnabled:NO];
        [self.Visual02Menu setEnabled:NO];
        [self.Visual03Menu setEnabled:NO];
    }
    else {
        self.textLabel.title = @"ACTIVE";
        [self.Visual01Menu setEnabled:YES];
        [self.Visual02Menu setEnabled:YES];
        [self.Visual03Menu setEnabled:YES];
    }
}

您要找的是state。您可以通过以下方式比较是否有按钮:

Objective-C

self.playButton.state == NSControlStateValueOn  // or NSControlStateValueOff

Swift

self.playButton.state == .on  // or .off

启用表示您是否可以与控件进行交互,禁用的控件将不会接收用户输入。