積極隱藏遊標 — Sam Soffes
發表於
我正在開發一個帶有顏色選擇器的 Mac 應用程式。這是一個螢幕截圖:

為了實現此目的,我隱藏了遊標並讓自訂視圖追蹤您的滑鼠移動。 (當我說 游標 我的意思是你用滑鼠控制的螢幕上的指針,當我說滑鼠時,我指的是你的實體輸入裝置。 )我使用全螢幕、無邊框窗口, NSTrackingArea 來做到這一點。那裡沒什麼太瘋狂的。我這樣做是為了避免處理定制a NSCursor 因為那是很多工作。
當我顯示這個全螢幕視窗時,我只需調用 NSCursor.hide() 並打電話 NSCursor.unhide() 當視窗被關閉或失去焦點時。很容易。
這就是問題所在。 如果你猛烈地移動滑鼠,遊標就會回來。這花了我一段時間才弄清楚。如果系統使您的遊標變得巨大,那麼它就會回來。但你永遠不會真正看到它變得巨大。這有點像是個錯誤。我知道使用 NSCursor hide 和 unhide 除非你控制一切,否則不是超級可靠。我認為有一個全螢幕視窗就足夠了。那好吧。
不過有一個簡單的解決方案:
override func mouseMoved(with event: NSEvent) {
// Whatever work I would normally do here
// Workaround macOS making the cursor huge and unhiding it when you wiggle it violently
NSCursor.hide()
}
很容易。也許我應該使用自訂遊標而不是這種瘋狂的行為?
