什么单|快速意味着

时间:2016-08-06 04:44:41

标签: swift macos

我在OS X中构建菜单栏项时找到了一些示例代码。它使用了单个|我不确定它的实际含义。

(我要做的是在左键单击菜单项时调用一个函数,但让它在右键单击时显示菜单)

这是我的代码

//Get reference to main system status bar
let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-1)
statusItem.image = icon
statusItem.menu = menuBar
if let statusButton = statusItem.button
{
    statusButton.target = self
    statusButton.action = #selector(statusItemClicked)

    statusButton.sendActionOn(Int(NSEventMask.RightMouseUpMask.rawValue | NSEventMask.LeftMouseUpMask.rawValue))

}

原始答案,代码为Left vs Right Click Status Bar Item Mac Swift 2

2 个答案:

答案 0 :(得分:2)

按位OR,就像在大多数类C语言中一样。在这种情况下,它被用来组合标志。

答案 1 :(得分:1)

那一定是旧代码。如今,在现代的斯威夫特,NSEventMask is an Option Set。你可以说[NSEventMask.rightMouseUp, NSEventMask.leftMouseUp],你完全不需要Int cast。 (或者,如果您还没有更新到Swift 3,则案例名称将以大写字母开头。)