2009-03-29 16 views

Respuesta

36

Establezca WebKitDeveloperExtras en YES en sus valores predeterminados de usuario predeterminados cuando envía -[NSUserDefaults registerDefaults:]. Esto se aplica a toda la aplicación, por supuesto.

Recuerde que el usuario puede cambiarlo a NO, así que no suponga que es YES: si alguna vez importa (por ejemplo, al personalizar el menú contextual), siempre verifique.

Advertencia: esta preferencia no solo habilita necesariamente el Element Inspector. Apple puede extenderlo en el futuro para controlar, por ejemplo, un menú de depuración en la barra de menú. Puede encontrar esto como un riesgo inaceptable.

+0

Esto funciona! ¡Increíble! Nota al margen: Establece la configuración en la primera carga, que no surte efecto hasta que se reinicie la aplicación. No estoy seguro de cómo evitar esto - quizás proporcione un archivo de propiedades predeterminado ... – user53937

+1

loglibrarian: configúrelo antes. Si applicationWillFinishLaunching: no es lo suficientemente bueno, configúrelo en su función main(). –

+0

Ok, sé que estoy presionando mi suerte aquí, pero ¿hay alguna manera de lanzar programáticamente el inspector web? Tal vez una API privada? – user53937

1

Intenté hacerlo, pero no pude ver el inspector web.

¿No es lo mismo que [[NSUserDefaults standarduserDefaults] registerDefaults:[NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:@"WebKitDeveloperExtras"]]?

+0

Menos que] en el frente, sí. –

+0

Gracias. De la lista de distribución de webkit-dev recibí otra respuesta. Debe hacerse en su momento más temprano como + initialize, o puede ser emitido en el prompt de Unix. valores predeterminados escribir com.yourcompany.nombre del programa WebKitDeveloperExtras -bool true –

8

en mi caso (MacOSX 10.6.5) no funcionó.

que tenía que hacer lo siguiente en el método windowDidLoad de mi web View WindowController:

 
/* Initialize webInspector. */ 
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"WebKitDeveloperExtras"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 
+0

Encontré que era necesario reiniciar mi aplicación para que esto surtiera efecto. ¿Es eso o es necesario que esto suceda antes de que se cree una instancia de la vista web? – uchuugaka

37

Un REALMENTE manera fácil hacerlo ... es en la terminal .... ⌘ ⬆ ☺

defaults write com.yourcompany.yourbundleid WebKitDeveloperExtras TRUE

(Con OSX 10.8, utilice defaults write com.yourcompany.yourbundleid WebKitDeveloperExtras -bool true en su lugar).

NOTA: Usted MUST cambio com.yourcompany.yourbundleid a sus "aplicaciones" específicas (o lo que sea de aplicación bundle ID empresa que sea) antes esto funcionará **

Lo bueno de este ... hay NO WAY para olvidarse de sacarlo, apagarlo, comentarlo, etc. ... Esta es una configuración LOCAL ... y se puede configurar para CUALQUIER aplicación habilitada para webkit ... Si no ve un menú de desarrollador, o lo que sea ... traste no ..

derecho☝ (clic) en la vista Web y vaya a "Mostrar Información".

Además, a lo largo de las mismas líneas, lo siguiente puede hacer algo así .. pero que no he probado, así que no sé ..

defaults write com.yourcompany.yourbundleid IncludeDebugMenu 1

+0

Tuve que usar 'defaults write com.yourcompany.yourbundleid WebKitDeveloperExtras -bool true' para que funcione. – thomthom

22

de Apple recommends:

defaults write com.example.myApp WebKitDeveloperExtras -bool true 

Sin embargo, hasta donde puedo decir, esto puede dejar de funcionar si está ejecutando su aplicación fuera de la caja de arena (lo que puede necesitar durante algunas etapas de desarrollo).En caso de que encuentre a este problema, lo que funcionó para mí es fijar el valor de la clave WebKitDeveloperExtras en el NSGlobalDomain:

defaults write NSGlobalDomain WebKitDeveloperExtras -bool true 
Cuestiones relacionadas