2009-09-11 19 views
9

C'è un modo per nascondere globalmente il cursore del mouse per tutte le app in Cocoa (o Carbon)? O almeno sostituirlo con qualcos'altro?Nascondere globalmente il cursore del mouse in Cocoa/Carbon?

EDIT: Grazie per i ragazzi di ingresso, ma si rivela Daniel Jalkut trovato la soluzione di qualche tempo fa :) http://lists.apple.com/archives/carbon-dev/2006/Jan/msg00555.html

+0

cura di spiegare un po 'di più sul motivo per cui ci si vuole fare questo? In generale, sembra una cattiva idea in quanto si perde il vantaggio del cursore che cambia mentre gli oggetti vengono passati con il mouse. Oppure hai intenzione di dare più spazio al cursore? per esempio cambia ancora al passaggio del mouse, ma ancora a un cursore personalizzato –

risposta

2

Partenza: http://developer.apple.com/legacy/mac/library/samplecode/CarbonCocoa_PictureCursor/listing2.html È un vecchio campione, ma probabilmente funziona ancora.

Mi aspetto che si restringerà la finestra dell'applicazione, tuttavia. Se vuoi nasconderlo per tutti, probabilmente dovrai fare in modo che la tua finestra copra lo schermo.

Fun fact: la vecchia funzione degli strumenti era semplicemente "HideCursor()".

+0

Grazie. Qualche consiglio su come fare una finestra per coprire il mio schermo? (Per essere chiari, voglio anche nascondere il cursore del mouse per tutte le applicazioni ...) –

+0

Gestire una finestra a schermo intero nel modo giusto significa che dovrai assicurarti di coprire tutti gli schermi collegati. Guarda: http://www.cocoadevcentral.com/articles/000028.php. In alternativa, potresti trovare del codice di esempio per un'applicazione per lo screen saver. Gli screen saver generalmente coprono anche lo schermo. Nel tuo caso, ti consigliamo di modificare la finestra in modo che sia un livello sotto le finestre dell'applicazione. – Seth

0

No, non credo che ci sia un modo per fare quello che vuoi, a meno di mostrare una finestra a schermo intero e quindi oscurare assolutamente tutto sul desktop. Ciò impedirebbe anche, ad es. le sequenze di tasti vengono inviate all'applicazione giusta e simili.

7

Si sta cercando CGDisplayHideCursor, che fa parte dell'API dei servizi di visualizzazione Quartz.

+0

Grazie, non l'ho visto prima. "Nella maggior parte dei casi, il chiamante deve essere l'applicazione in primo piano che influisce sul cursore." Quindi ... qual è il caso in cui * non * deve essere l'applicazione in primo piano? :) –

+0

Sono venuto qui cercando un modo per nascondere il cursore solo nella mia applicazione in primo piano, e questo era esattamente il biglietto. Grazie! –

2

solo aggiungere questo al codice:

CGDisplayHideCursor (kCGNullDirectDisplay); 
Problemi correlati