Escondendo agressivamente o cursor – Sam isoffes
Postado em
Estou trabalhando em um aplicativo Mac que possui um seletor de cores. Aqui está uma captura de tela:

Para que isso funcione, escondo o cursor e tenho uma visualização personalizada, rastreie os movimentos do seu mouse. (Quando digo cursor Quero dizer, o ponteiro na tela que você controla com o mouse e, quando digo mouse, quero dizer seu dispositivo de entrada física.) Eu uso uma tela cheia, janela sem fronteiras e NSTrackingArea Para fazer isso. Nada muito louco lá. Eu faço isso para evitar lidar com um personalizado NSCursor já que isso era muito mais trabalho.
Quando eu mostro esta janela de tela cheia, simplesmente ligo NSCursor.hide() e ligue NSCursor.unhide() Quando a janela é demitida ou perde o foco. Fácil o suficiente.
Aqui está o problema. Se você mover violentamente o mouse, o cursor voltaria. Isso me levou um tempo para descobrir. Se o sistema tornar seu cursor gigante, ele voltará. Você nunca vê que é gigante. Isso meio que parece um bug. Eu sei usando NSCursor hide e unhide Não é super confiável, a menos que você controla tudo. Eu embora ter uma janela de tela cheia era controle suficiente. Ah bem.
Havia uma solução simples:
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()
}
Fácil o suficiente. Talvez eu deva usar um cursor personalizado em vez dessa loucura?
