Safari 5

Noticias de Safari 5 en Applesfera

El resultado que queremos conseguir en esta entrada es sencillo: Eliminar la barra de búsquedas que Safari 5 tiene a la derecha de la barra de direcciones, en la parte superior de navegador. Los motivos para querer hacer ésto pueden ser muchos, uno de ellos, por ejemplo, es haber seguido esta otra entrada donde dotábamos a la barra de direcciones de Safari de las funcionalidades de búsqueda.

Lo que se pretende conseguir en estas dos entradas es unificar en una sola barra la de direcciones y la de búsqueda, tal como ya hace Chrome y otros navegadores. De esta forma conseguimos un navegador mucho más minimalista a lo que nos ofrece Apple, pero con la misma potencia (o más) del Safari original.

Para seguir los pasos de este pequeño tutorial no es necesario haber seguido antes el de hace unos días, pero os lo recomiendo si queréis dotar a vuestro navegador de mayor versatilidad. En cualquier caso, para conseguir el efecto que os propongo hoy, necesitaremos tener instalado Xcode 4, la suite para desarrolladores de Apple, ya que utilizaremos su Interface Builder para “esconder” de la barra superior aquel elemento que no queremos ver.

Utilizando Interface Builder para ocultar la barra

Básicamente, lo que vamos a hacer es abrir el .nib que almacena la interfaz de las barras de Safari 5, para ocultar la barra de búsqueda. El problema, es que en Safari 5 el .nib que contiene los elementos de la interfaz está compilado por Apple, y ello impide que podamos editar con el Interface Builder de Xcode. Sin embargo podemos utilizar un pequeño truco para editarlo. Antes de nada, cerrad cualquier ventana de Safari 5 que tengáis abierta. Y seguid estos pasos:

Vamos a Aplicaciones/Safari y pulsamos click derecho sobre él / Mostrar contenido del paquete / Contents / Resources / Spanish.lproj . A éste directorio completo le vamos a dar permisos completos de lectura y escritura, para evitar errores posteriores. Tan fácil como click derecho sobre él, obtener información y en la parte inferior, pulsáis sobre el candado, que os permitirá cambiar los permisos a “Leer y escribir” a todos los usuarios. Yo, incluso me añado como usuario como medida extra (utilizando el botón (+) de la parte inferior izquierda):

Por seguridad, hacemos una copia del .nib que vamos a modificar, dentro del directorio Spanish.lproj. Se trata del ToolbarItems.nib. Click derecho sobre él / Copiar “ToolbarItems.nib”. Ésto creará una copia en este mismo directorio de este archivo… por si hacemos algo mal y tenemos que volver al original.

Para “engañar” al sistema y que nos permita editar el .nib que nos interesa, lo que haremos será abrirlo (de nuevo, click derecho sobre TootlbarItems.nib (el original, no la copia que acabamos de hacer) / Mostrar contenido del paquete. Ahí veremos un solitario archivo llamado keyedobjects.nib. Lo copiamos al portapapeles con cmd+c.

El siguiente paso, es abrir cualquier otra aplicación que NO sea de Apple y llegar hasta su carpeta Resources (con “Mostrar contenido del paquete”, de nuevo). Allí, buscamos cualquier otro .nib (pueden estar dentro de English.lproj, si el programa no está en castellano) y de nuevo abrimos este .nib con “Mostrar contenido del paquete” hasta que veamos un archivo del mismo nombre al que tenemos en el portapapeles. Sacamos el que hay ahí al escritorio y copiamos el que tenemos en el portapapeles dentro de ese nib. Es decir, habremos copiado el keyedobjects.nib de ToolbarItems.nib de Safari 5 dentro de cualquier otro *.nib de cualquier otra aplicación.

El objetivo ahora es abrir el *.nib donde lo hemos dejado (será su el directorio anterior que lo contiene). Para que quede más claro, si hemos copiado el keyedobjects.nib dentro de AlarmEditor.nib, lo que haremos será hacer doble click sobre AlarmEditor.nib para abrirlo con Xcode 4. Evidentemente, el nombre “AlarmEditor.nib” me lo acabo de inventar, podéis utilizar cualquier *.nib que encontréis en alguna aplicación, pero siempre que NO sea de Apple. Cualquier aplicación gratuita que tengáis a mano, por ejemplo.

Al abrir el *.nib que contiene nuestro keyedobjects.nib, veremos la interfaz de la barra:

Ahora pulsamos en la barra de búsqueda (os lo he marcado como “1” en la imagen anterior) hasta que, dentro de la tercera pestaña del Inspector, en la sección “Custom Class”, veamos que aparezca como “class”: WebSearchField. Sólo entonces sabremos que hemos seleccionado el elemento adecuado.

Ahora es cuando ocultamos la barra. Nos vamos a la cuarta pestaña (os lo marco como “1” en la siguiente imagen) y luego bajamos hasta la sección “View”, donde debemos marcar, en “Drawing”, la opción de “Hidden” (os lo marco como “2”, también en la siguiente imagen):

Grabamos desde Xcode los cambios desde la opción File / Save, y podemos salir de Xcode. ¿Que nos falta? Tan sólo entrar en este *.nib que contiene el keyedobjects.nib de Safari que estábamos editando, copiarlo al portapapeles e irnos a la carpeta de Safari, dentro de Spanish.lproj, y dentro de ToolbarItems.nib (recordad, siempre “Mostrando contenido del paquete”), pegamos este keyedobjects.nib que acabamos de modificar, sustituyendo al que hay. Si abrimos ahora Safari, ya deberíamos ver la nueva interfaz sin la barra de búsqueda, sin hacer nada más.

Resumiendo el proceso

Quizás parezca un poco complicado, así que voy a explicarlo de forma más sencilla para que veáis el concepto: Cualquier *.nib, que son contenedores de elementos de interfaz en Mac OS X, contienen a su vez un keyedobjects.nib donde están dichos elementos. Como el ToolbarItems.nib, el contenedor, no podemos abrirlo con Xcode 4 debido a la compilación por parte de Apple, lo que hemos hecho es abrir este *.nib, extraer el keyedobjects.nib y copiárselo a cualquier otro *.nib contenedor que tengamos a mano de cualquier aplicación no-Apple. Esto nos permite abrirlo desde el contenedor no-Apple y editarlo como os he comentado arriba.

Después de editarlo, resturamos el keyedobjects.nib dentro de ToolbarItems.nib de Safari 5, y ya lo tenemos todo hecho. Si os sirve de ayuda, yo he utilizado una aplicación gratuita que tenía por el disco duro llamada Alarm Clock. Pero os servirá cualquier aplicación que tengáis en el Mac. Eso sí, recordad luego restaurar el keyedobjects.nib de esta aplicación dentro de su *.nib contenedor para que la aplicación siga funcionando… Mejor si es una aplicación gratuita, que siempre son más fáciles de restaurar en caso de que algo falle.

Espero que os animéis y probéis esta edición de bricolaje maquero, ya que de paso que estilizamos un poco y personalizamos el navegador de Apple, aprendemos cómo están construidas las aplicaciones en Cocoa y cómo se distribuyen en el sistema de archivos. ¡Ánimo valientes!

En Applesfera | Cómo combinar la barra de direcciones y de búsquedas en Safari 5 (por fin)

Inicio