试图找到一种更简单的方法来自动反转 .on 和 off。状态 swift

trying to find a simplier way to do automatic reversal of .on and off. state in swift

myMenuItem.state = NSControl.StateValue(rawValue: Int(truncating: Bool(myMenuItem.state == .off) as NSNumber))

我一直在用这条线,开的时候关,关的时候开 使用 swift 的菜单项 有没有更简单的方法来使用相同的状态做同样的事情 ==

如果你只是想在开和关之间切换状态,你可以简单地做:

myMenuItem.state = myMenuItem.state == .off ? .on : .off

或者,您可以在 NSControl.StateValue 上添加扩展:

extension NSControl.StateValue {
    mutating func toggle() {
        if self == .off {
            self = .on
        } else {
            self = .off
        }
    }
}

// usage:
myMenuItem.state.toggle()