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)
Ver 45 comentarios
45 comentarios
carharttkid
Mola!
pero demasiado lío para tan poco resultado…
no habrá una extensión? sería lo suyo para dejar chrome y volver
zedaniel
Sólo comento porque Pedro se ha ganado el sueldo. Gracias Pedro.
albertpg86
Yo desde que ha salido el Firefox 4, he vuelto a dejar de lado a Chrome. Con Chrome las páginas con flash me hacen subir la temperatura de la CPU y con según que videos el ventilador se pone a full.
Con Firefox 4 ha mejorado bastante el tema.
mjchavez
es de esas cosas que uno siempre piensa y quiere hacer, pero demaciado engorroso, cuando lei el tirulo me imaginaba algo mucho mas sencillo, o codigo en la terminal o algo asi. asi que por ahora la barra esa gana y se queda ahi tranquila XD
Refresco Fanta
¿Y alguna manera de ponerla en Chrome? haha Debo decir que si bien Chrome al principio me gustó que no la tuviera, ahora odio que solo sea la barra de direcciones puesto que, no puedo buscar una IP pues la abre como pagina, no puedo buscar una URL, no puedo buscar un correo pues me manda al dominio de ese correo etc.
jorl
Se ve que soy el único que hacer un scroll en Chrome en Mac va a saltos y sin embargo Safari, a aparte de la integración con el teléfono, va mucho más fluido y no me da errores en páginas... como por ejemplo en vagos.es donde con Chrome no puedo ver los enlaces de descarga cuando tengo que pulsar esa de "Mostar".
berardo.castineira
Miedo :S
(¡pero muy bien explicado!)
infoparayas
Apple acaba de anunciar las fechas de la WWDC 2011. Del 6 al 10 de Junio en el Moscone Center. "Join us for a preview of the future of iOS and Mac OS X".
djfranxeco
Muy buena idea, pero como inútil para mí, llevo con chrome desde hace meses y cada vez que pongo safari "por error" la lentitud me lo recuerda, me recuerda a internet explorer lo lento k va...no se que carajo le pasa
imcakpys7
se necesita estrictamente el Xcode 4? o también se puede hacer con el Xcode 3?
jelalo
Pedro no tienes que empezar a repartir collejas (lo que sea que eso signifique). Mira ya le quité la barra de búsqueda a Safari. http://twitpic.com/4ebyyb Muchas Gracias por el tutorial.
Nota. Lo hice utilizando Xcode 3.2.4
cristian.arenas
Increíble! Podría intentar hacer un mejor plugin para la barra :O (que de algo me sirva saber programar :B)
imcakpys7
Tiene razón: la explicación es mas larga que el proceso, y solo por que esta PERFECTAMENTE BIEN EXPLICADO. Tarde mas en leerlo y decidirme a meterle mano que en hacerlo. No tarde ni 5 min Otra vez GRACIAS Pedro
imcakpys7
sigo molestando con las preguntas. ¿Este proceso se podría realizar en cualquier aplicacion de Apple siempre y cuando encontremos el nib correspondiente?
imcakpys7
NO se a que se deba pero desde que seguí este tuto e experimentado unos cuelgues horribles de la aplicación ¿A alguien le pasa lo mismo? Aun así repito: BUEN POST
Jesús Porra
"bricolaje maquero"... Me encanta!
kyotoneko
yo lo habia hecho con este metodo http://www.youtube.com/watch?v=pg-DcMPabuo que es mas sencillo ya que tiene el archivo modificado para bajar y reemplazar asi que no hay que editar nada.
sin embargo lo restaure ya que tenia unos problemas importantes: * no se puede personalizar mas la barra de herramimentas con click derecho * desaparece la opcion para buscar con google haciendo click con boton derecho sobre el texto seleccionado * la barra de direcciones queda como en modo personalizar permanentemente, es decir que si accidentalmente la arrastramos fuera de la ventana la perdemos y no hay forma de volver a colocarla ya que como dije en el primer punto ya no deja personalizar.
oldersmith1
No tengo x-code xD
20925
También se puede con el XCode 3, no es necesario el 4, la idea es simple, hacerlo es enredado, pero yo tengo configuraciones diferentes en chrome y en safari...
iDexter
Yo he intentado usar Safari obligándome moralmente a ello por eso de que es una app de Apple y debería funcionar de manera óptima pero como mi queridísimo Firefox no hay ninguno. Chrome lo he probado pero no sé por qué tampoco me acostumbro a él. Firefox forever! :P
chitodelgado
Excelente aportación!, pero tengo un problema, no he podido ver la interfaz del "keyedobjects.nib", tenia Xcode 3 y a la hora de abrir el archivo con "Application Builder" simplemente no aparecia nada en la ventana. Después de eso descargue Xcode 4, y ahora mi problema es abro el "keyedobjects.nib" me aparece simplemente un archivo en la ventana de Xcode 4, es decir, como si estuviera viendo el icono del archivo en Finder. Enseguida del icono de una hoja en blanco aparace lo listado abajo.
keyedobjects.nib Nib document type 23KB Last Modified…
Alguna idea? Cabe mencionar que he cambiado de lugar el archivo "keyedobjects.nib" de Safari a una aplicación gratuita no perteneciente a Apple siguiendo los pasos del tutorial.
balo12
hola porfa una prez urggg, quiero hacer lo contrario hacer aparecer la barra de búsqueda, no se que paso q solo esta la de direcciones y quiero hacer que vuelva la barra de búsqueda, prefiero tener las dos.. gracias es urgggggg balo12@hotmail.com
gracias por todo
krollian
Una caja para las direcciones. Otra para las búsquedas. No veo dónde está el problema.
Perdón, pero esta personalización de fusionar las dos funciones en una sola caja, no me aporta nada. Habrá a quien le encante este cambio, pero no es mi caso.
Pedro: te has currado una entrada que vale por cuatro. Vaya tela. ;)