2016-08-06 8 views
0

OS Xでメニューバー項目を作成するときに、いくつかのサンプルコードが見つかりました。私はそれが実際に何を意味しているのかは分かりません。シングル| mean in swift

ここに私のコード

//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

答えて

1

これは本当に古いコードである必要があります。今日では、現代スイフトでは、NSEventMask is an Option Set[NSEventMask.rightMouseUp, NSEventMask.leftMouseUp]と言うことができ、Intキャストはまったく必要ありません。 (またはSwift 3にまだ更新していない場合は、大文字で始まるケース名になります)

+1

ビットマスクの詳細と、新しい方法(オプションセット)を扱う古い方法(あなたの方法)については、私の本http:// www。 apeth.com/swiftBook/ch04.html#SECoptionsSets – matt

2

ほとんどのC言語のように、ビット単位のORです。この文脈では、フラグを組み合わせるために使用されています。

+0

このコードで何が行われているのか正確に理解していますか?私はもう少し研究をするつもりです。このコードは実際には機能しませんし、問題があるかどうかわかりません。 – Dallas

+0

@Dallasこれは古いコードなので、書き直す必要があります。彼の(非常に良い)本からのリンクを見てください – FredericP