我在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))
}
答案 0 :(得分:2)
按位OR,就像在大多数类C语言中一样。在这种情况下,它被用来组合标志。
答案 1 :(得分:1)
那一定是旧代码。如今,在现代的斯威夫特,NSEventMask is an Option Set。你可以说[NSEventMask.rightMouseUp, NSEventMask.leftMouseUp]
,你完全不需要Int cast。 (或者,如果您还没有更新到Swift 3,则案例名称将以大写字母开头。)