2009-09-11 7 views
9

Gibt es eine Möglichkeit, den Mauszeiger für alle Apps in Cocoa (oder Carbon) global zu verbergen? Oder ersetzen Sie es zumindest durch etwas anderes?Den Mauszeiger global in Cocoa/Carbon verstecken?

EDIT: Danke für die Eingabe Jungs, aber stellt sich heraus, Daniel Jalkut die Lösung vor einiger Zeit gefunden :) http://lists.apple.com/archives/carbon-dev/2006/Jan/msg00555.html

+0

Pflege ein wenig mehr zu erklären, warum Sie dies tun wollen würde? Es scheint im Allgemeinen eine schlechte Idee zu sein, da Sie den Vorteil verlieren würden, dass sich der Cursor ändert, während die Maus über die Maus bewegt wird. Oder beabsichtigen Sie mehr, den Cursor zu häuten? d. h. es muss sich immer noch ändern, wenn Sie mit der Maus darüber fahren, aber wieder zu einem benutzerdefinierten Cursor –

Antwort

2

Check out: http://developer.apple.com/legacy/mac/library/samplecode/CarbonCocoa_PictureCursor/listing2.html Es ist eine alte Probe, aber wahrscheinlich immer noch funktioniert.

Ich erwarte jedoch, dass Sie sich auf Ihr Anwendungsfenster beschränken werden. Wenn Sie es für alle verstecken möchten, müssen Sie wahrscheinlich Ihr Fenster den Bildschirm abdecken.

Fun Tatsache: Die alte Toolbox-Funktion war einfach "HideCursor()".

+0

Danke. Irgendwelche Ratschläge, um ein Fenster auf meinem Bildschirm zu machen? (Um klar zu sein, ich möchte, dass der Mauszeiger auch für alle Anwendungen ausgeblendet wird ...) –

+0

Wenn Sie ein Vollbildfenster richtig handhaben, müssen Sie sicherstellen, dass Sie alle angeschlossenen Bildschirme abdecken. Schau dir an: http://www.cocoadevcentral.com/articles/000028.php. Alternativ finden Sie möglicherweise Beispielcode für eine Bildschirmschoneranwendung. Bildschirmschoner decken im Allgemeinen auch den Bildschirm ab. In Ihrem Fall sollten Sie Ihr Fenster so ändern, dass es eine Ebene unter Ihren Anwendungsfenstern ist. – Seth

0

Nein, ich glaube nicht, dass es eine Möglichkeit gibt, das zu tun, was Sie wollen, kurz davor, ein Vollbildfenster anzuzeigen und dann alles auf dem Desktop zu verdecken. Dies würde z.B. Tastenanschläge werden an die richtige Anwendung und dergleichen gesendet.

7

Sie suchen nach CGDisplayHideCursor, die Teil der Quartz Display Services API ist.

+0

Danke, habe das vorher nicht gesehen. "In den meisten Fällen muss der Aufrufer die Vordergrundanwendung sein, um den Cursor zu beeinflussen." Also ... was ist der Fall, wenn ich * nicht * die Vordergrundanwendung sein muss? :) –

+0

Ich kam hierher, um nach einer Möglichkeit zu suchen, den Cursor nur in meiner Vordergrundanwendung zu verstecken, und das war genau das Ticket. Vielen Dank! –

2

nur fügen Sie diese Ihren Code:

CGDisplayHideCursor (kCGNullDirectDisplay);