Swift3 Cocoa マウスカーソルを隠す

SwiftCocoaでマウスカーソルを隠す方法をドキュメントから探した。

3通りの方法があった。

CGDisplayHideCursor(id)

これで隠すと、再び表示させる時に、CGDisplayShowCursor(id)を使う必要がある。 ウィンドウ外にでて、Dockを表示させようとしても(普段しまうようにしている)表示させられる。

原因は不明だが、カーソルが隠れないことがあった。

NSCursor.hide()

これもだいたい同じで、再び表示させる時に、NSCursor.unhide()を使う必要がある。 ウィンドウ外にでて、Dockを表示させようとしても表示させられる。

これも原因は不明だが、カーソルが隠れないことがあった。

NSCursor.setHiddenUntilMouseMoves(Bool)

これは名前の通り、trueを渡すとマウスカーソルが動くまで隠してくれる。falseを渡して呼んでも再び表示される。

NSCursor.hide()NSCursor.setHiddenUntilMouseMoves(Bool)をオーバーライドしている。

これは隠れてくれた。

希望にあった動作をするのは3つ目だったのでそれを利用することにした。

参考

Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)
石川 洋資 西山 勇世
技術評論社
売り上げランキング: 16,482
MAC OS X COCOAプログラミング 第4版
アーロン ヒレガス アダム プレブル
東京電機大学出版局
売り上げランキング: 551,062
タイトルとURLをコピーしました