Ich habe eine grundlegende Cocoa-App mit einem benutzerdefinierten NSTextField
, die einen Hyperlink emuliert.Benutzerdefinierte NSCursor ist nach dem Ändern in ein anderes Fenster verloren
Ich verwende den folgenden Code, um den benutzerdefinierten Cursor im Textfeld Implementierung zu setzen:
- (void) resetCursorRects {
[self addCursorRect: self.bounds cursor: [NSCursor pointingHandCursor]];
}
Ich überschrieb auch mouseUp:
und eine Aktion ausführen, wenn das Etikett angeklickt wird. In meinem Fall öffne ich eine URL über NSWorkspace
.
Das Problem: Beim Öffnen des Browsers wird der "Zeigezeiger" auf den normalen Pfeilcursor zurückgesetzt (da das oberste Fenster jetzt Safari ist). Wenn ich jedoch zu meiner App zurückkehre und den Mauszeiger über meine benutzerdefinierte Hyperlink-Beschriftung bewege, ändert sich der Cursor nicht zur "Zeigehand".
Erst wenn ich die Größe des Fensters ändere (und die Cursor-Rezetze werden zurückgesetzt), arbeitet der Cursor wieder.
Ich versuchte, die Cursor-Rect im mouseUp:
Aufruf ungültig zu machen, aber das hat nicht funktioniert.