2009-09-11 11 views
9

¿Hay alguna forma de ocultar globalmente el cursor del mouse para todas las aplicaciones en Cocoa (o Carbon)? ¿O al menos reemplazarlo con algo más?¿Ocultar globalmente el cursor del mouse en Cocoa/Carbon?

EDIT: Gracias por los chicos de entrada, pero resulta Daniel Jalkut encontró la solución hace un tiempo :) http://lists.apple.com/archives/carbon-dev/2006/Jan/msg00555.html

+0

Atención a explicar un poco más en cuanto a por qué te gustaría hacer esto? Por lo general, parece una mala idea ya que perdería la ventaja de que el cursor cambia a medida que los elementos pasan. ¿O tiene la intención de despellejar más el cursor? es decir, todavía tiene que cambiar al pasar el mouse, pero de nuevo a un cursor personalizado –

Respuesta

2

Salida: http://developer.apple.com/legacy/mac/library/samplecode/CarbonCocoa_PictureCursor/listing2.html Es una muestra de edad, pero probablemente todavía funciona.

Sin embargo, espero que esté limitado a la ventana de su aplicación. Si desea ocultarlo para todos, probablemente deba hacer que su ventana cubra la pantalla.

Dato curioso: La antigua función de la caja de herramientas era simplemente "HideCursor()".

+0

Gracias. ¿Algún consejo sobre cómo hacer que una ventana cubra mi pantalla? (Para que quede claro, quiero que el cursor del mouse se oculte también para todas las aplicaciones ...) –

+0

Manejar una ventana de pantalla completa de la manera correcta significa que tendrá que asegurarse de cubrir todas las pantallas adjuntas. Mira: http://www.cocoadevcentral.com/articles/000028.php. Alternativamente, puede encontrar algún código de muestra para una aplicación de protector de pantalla. Los protectores de pantalla generalmente cubren la pantalla también. En su caso, querrá modificar su ventana para que sea una capa debajo de las ventanas de su aplicación. – Seth

0

No, no creo que haya una manera de hacer lo que quiera, salvo mostrar una ventana de pantalla completa y oscurecer absolutamente todo en el escritorio. Eso también evitaría, p. las pulsaciones de teclas que se envían a la aplicación correcta y similares.

7

Está buscando CGDisplayHideCursor, que es parte de la API de Quartz Display Services.

+0

Gracias, no lo vi antes. "En la mayoría de los casos, la persona que llama debe ser la aplicación de primer plano para afectar el cursor". Entonces ... ¿cuál es el caso en el que * no * tengo que ser la aplicación en primer plano? :) –

+0

Vine aquí buscando una forma de ocultar el cursor en mi aplicación de primer plano solamente, y este era exactamente el ticket. ¡Gracias! –

2

sólo tiene que añadir esto a su código:

CGDisplayHideCursor (kCGNullDirectDisplay); 
Cuestiones relacionadas