xcode macos colors mouse-cursor

Cambiar el cursor i-beam del mouse en Xcode 4



macos colors (5)

De acuerdo con este hilo en los foros de Apple:

https://discussions.apple.com/thread/2811447?start=0&tstart=0

el "color del cursor" al que se hace referencia en las preferencias de fuentes y colores de XCode 4 es en realidad el cursor que ve cuando hace clic en una ventana para ingresar texto.

El cursor en forma de I que ve cuando mueve el mouse en la ventana de edición de código es una función amplia de Mac-OS que no puede cambiar en XCode.

La publicación del foro anterior sugiere buscar un software de terceros para cambiar los atributos del cursor en forma de I en todo el sistema.

Otra publicación señala que al menos puedes editar el tamaño del cursor para hacerlo más visible:

Preferencias del sistema -> Acceso universal -> Mouse y trackpad -> Tamaño del cursor

Con un esquema de color oscuro en Xcode 4, el cursor i-beam (también conocido como cursor de selección de texto) es casi invisible. ¿Hay alguna forma de cambiar el color de este cursor, ya sea específicamente para Xcode o, en su defecto, para todo el sistema?

Sería bueno si cambiara automáticamente a un color que contraste su fondo también.



Creé un repositorio público para un cursor ibeam que debería funcionar en fondos de colores claros y oscuros, porque es negro con un contorno blanco. Incluye instrucciones breves y un archivo TIFF listo para ingresar al paquete de Xcode.

Actualización: el git repo incluye un script de shell que hace que la instalación sea bastante fácil.


Desafortunadamente, esta es una diferencia entre los cursores de carbono y cacao: los cursores de cacao no se invertirán; al menos, hasta Snow Leopard. En Lion, incluso los cursores de Carbon se comportan como tú no quieres.

Si tiene una máquina que ejecuta Snow Leopard o antes, compare el comportamiento de la viga en I en BBEdit o TextWrangler (que utilizan cursores de carbono), por ejemplo; se volverá completamente blanco sobre un fondo negro. Incluso esto es un poco frágil: cuando cambio la ampliación de la pantalla, el cursor anterior de BBEdit se vuelve negro.

Aún puede establecer un cursor de carbono en su aplicación Cocoa. Pruebe esto en una subclase NSTextView:

#import <Carbon/Carbon.h> [...] - (void)resetCursorRects; { // disable existing cursor setting behavior } - (void)cursorUpdate:(NSEvent *)event; { SetThemeCursor(kThemeIBeamCursor); } - (void)updateTrackingAreas; { for (NSTrackingArea *trackingArea in [self trackingAreas]) [self removeTrackingArea:trackingArea]; NSTrackingArea *trackingArea = [[NSTrackingArea alloc] initWithRect:NSZeroRect options:NSTrackingCursorUpdate | NSTrackingActiveInKeyWindow | NSTrackingInVisibleRect owner:self userInfo:nil]; [self addTrackingArea:trackingArea]; }

(En 64 bits, verá que esta función está excluida de los encabezados, pero el símbolo está allí y funciona.) Si está lo suficientemente motivado, podría parchar Xcode para hacer alguna variante de lo anterior, quizás de una Complemento Xcode .

Si estás en Lion, esto es lo que se supone que debe ser:

Por lo tanto, sugiero que se presente un error con Apple para que el cursor del sistema I-beam (o NSCursor en general) controle adecuadamente los fondos oscuros; no es un problema específico de Xcode y realmente debería haberse solucionado hace años.


A partir de Xcode 8, Apple ha escondido el cursor i-beam en algún lugar donde nadie lo ha encontrado. En cambio, muchos han elegido usar Mousecape para alterar la i-beam en todos los programas. Prefiero ese método, ya que corrige el i-beam en otros programas que admiten temas oscuros, como el editor de Komodo. Mousecape debería funcionar en todas las versiones de Xcode y actualizar Xcode no romperá el cursor. Actualmente estoy usando Mousecape en macOS 10.13.2, Xcode 9.1. Estos son los pasos:

  1. Descargar Mousecape desde aquí
  2. Descargue una "capa" con cursor i-beam modificado, como Blanco brillante o Sombra gris
  3. Ejecute Mousecape.app
  4. Desde la barra de menú de Mousecape: File > Import Cape > "cape" file downloaded above
  5. Haga clic derecho en "capa" importada y elija Apply
  6. Comprueba que el nuevo cursor esté funcionando en Xcode. Cuando esté satisfecho, puede aplicar el cursor en cada reinicio ejecutando un comando desde la barra de menú de Mousecape > Install Helper Tool : Mousecape > Install Helper Tool
  7. Instalar actualizaciones de macOS (como 10.13.1 a 10.13.2) puede requerir la repetición de los pasos 5 y 6.

Respuesta original:

Xcode NO usa el cursor i-beam de todo el sistema, ya que todos los que encontré hablando de él lo expresaron como si fuera un hecho conocido. Si no hubiera creído a esa gente, no habría pasado dos días pensando en cómo alterar el cursor del i-beam del sistema editando CoreGraphics solo para descubrir que el ibeam de Xcode no cambia. Por cierto, también tropecé con la forma de editar otros cursores del sistema .

Pasé la mayor parte del fin de semana pensando en esto, pero el cursor i-beam en Xcode PUEDE ser editado. Es simplemente un archivo TIFF en la siguiente ubicación para Xcode 3.2.6 (y antes, supongo, pero no lo he probado):

/Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources/TIbeam.tiff

Xcode 4.1 tiene el mismo archivo, pero no afecta a la i-beam en el editor principal (supongo que se usa en alguna parte, pero tal vez no). En cambio, el editor principal en Xcode 4.1 usa este archivo:

/Developer/Library/PrivateFrameworks/DVTKit.framework/Versions/A/Resources/DVTIbeamCursor.tiff

Los archivos ibeam se han movido nuevamente en Xcode 4.4:

/Aplicaciones/Xcode.app/Contents/OtherFrameworks/XcodeEdit.framework/Versions/A/Resources/TIbeam.tiff

/Aplicaciones/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/DVTIbeamCursor.png

/Aplicaciones/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/[email protected]

La edición de DVTIbeamCursor.png fue suficiente para cambiar el i-beam en el editor principal de mi sistema. En otro sitio, alguien informó que [email protected] se usará en una pantalla retina o en otras nuevas pantallas de alta resolución de Apple como Thunderbolt y Cinema. Quién sabe si ya se usa TIbeam.tiff ya que no lo actualizaron a png.

De acuerdo con los comentarios a continuación, en Xcode 5.0.2 los 3 archivos de cursor fueron reemplazados por un archivo:

/Aplicaciones/Xcode.app/Contents/OtherFrameworks/XcodeEdit.framework/Versions/A/Resources/DVTIbeamCursor.tiff

Y en 5.1.1 (chico, seguro que les encanta cambiar las cosas en casi todas las versiones, ¿no?):

/Aplicaciones/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Re sources / DVTIbeamCursor.tiff

Supongo que el archivo es un cursor de resolución doble (también conocido como retina display) que se ha reducido para pantallas que no retina.

Si no puede encontrar el archivo ibeam en su Xcode, intente ejecutar este comando en la Terminal:

sudo find / -name '' Ibeam '' -print

En Xcode 7.3, el cursor se movió dentro del siguiente archivo de paquete para que el comando de búsqueda anterior no lo encuentre:

/Aplicaciones/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Resources/Assets.car

Recomiendo usar un proceso que se encuentra aquí para aplicar un nuevo cursor al paquete de archivos. Si no le gusta el cursor que instala (sentí que todavía estaba demasiado oscuro y los contornos grises se mezclan con el texto de comentario gris), siga estos pasos:

  1. Descargue la última versión de Theme Engine (utilicé con éxito la versión 1.0.0 (111) con Xcode 7.3.1)
  2. Copia de seguridad / /Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/Assets.car
  3. Copie Assets.car algún lugar donde se pueda editar, como ~/Documents/Assets.car .
  4. Ejecute Theme Engine.app , haga clic en Open Document , luego abra ~/Documents/Assets.car .
  5. Desplácese hacia abajo en la lista de elementos a la izquierda y elija DVTIbeamCursor .
  6. Debería ver una resolución normal y una imagen de cursor de doble resolución en el panel central. Arrastre su propia imagen ibeam encima de cualquiera de los cursores y debería cambiar para mostrar su imagen. Usé una imagen PNG.
  7. Guarde, luego cierre Theme Engine.
  8. Mueva su Assets.car modificado de nuevo a /Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/Assets.car y guarde una copia de seguridad de su versión modificada en alguna parte para que no tenga que hacer esto de nuevo hasta que una nueva versión de Xcode cambie lo que hay en Assets.car .

También es posible que desee enviar una carta enojada a Apple para quejarse de que no han solucionado este problema en los últimos 7 años y, en cambio, ha hecho progresivamente más difícil para los usuarios el parche del cursor roto de Apple.

No olvides hacer copias de seguridad de tus cursores editados. Las versiones más nuevas de Xcode sobrescribirán sus cursores personalizados con los predeterminados cuando realice una actualización de software.

Aquí está el cursor ibeam que uso: Haga clic derecho en el ibeam y elija guardar la imagen para obtener la versión png, o haga clic aquí para descargar la versión tiff.

Si está haciendo su propio cursor, observe que donde se cruzan las líneas negras en el cursor original es donde las líneas blancas se cruzan en mi cursor. Esto se debe a que el cursor original estaba destinado a usarse sobre un fondo blanco, por lo que su parte negra es donde se encuentra el punto de acceso del cursor.