import AppKit import Carbon
extension NSEvent.ModifierFlags {
public var carbonFlags: UInt32 { var carbonFlags: UInt32 = 0 if contains(.command) { carbonFlags |= UInt32(cmdKey) } if contains(.option) { carbonFlags |= UInt32(optionKey) } if contains(.control) { carbonFlags |= UInt32(controlKey) } if contains(.shift) { carbonFlags |= UInt32(shiftKey) } return carbonFlags } public init(carbonFlags: UInt32) { self.init() if carbonFlags & UInt32(cmdKey) == UInt32(cmdKey) { insert(.command) } if carbonFlags & UInt32(optionKey) == UInt32(optionKey) { insert(.option) } if carbonFlags & UInt32(controlKey) == UInt32(controlKey) { insert(.control) } if carbonFlags & UInt32(shiftKey) == UInt32(shiftKey) { insert(.shift) } }
}
extension NSEvent.ModifierFlags: CustomStringConvertible {
public var description: String { var output = "" if contains(.control) { output += Key.control.description } if contains(.option) { output += Key.option.description } if contains(.shift) { output += Key.shift.description } if contains(.command) { output += Key.command.description } return output }
}