2010-05-18 16 views
5

webview in core animation layerCapas WebView de cacao - ¿Dibujando en la parte superior?

El único otro hilo que puedo encontrar es el anterior que no se ajusta necesariamente a mis necesidades. ¿Hay una forma confiable de simplemente dibujar una vista en la parte superior de una vista web? Intenté aplicar una capa de NSView normal encima de WebView, y se dibuja al principio, pero cualquier movimiento en la vista web (desplazarse por la página, etc.) parece invalidar la vista y produce artefactos visuales.

que he probado:

[[[NSApp mainWindow] contentView] addSubview:view positioned:NSWindowAbove relativeTo:webView]; 

no hay suerte, los mismos problemas - no parece orden z a trabajar a menos que me falta algo.

¿Es esto solo una limitación de las vistas web?

También intenté implementar la vista anterior como una ventana, que funcionó mucho mejor (simplemente controló la ubicación de la ventana mediante programación). Sin embargo, el comportamiento deseado es que el usuario ingrese texto en esta ventana, pero no robe "focus", es decir, la ventana principal se desactiva (x - + se pone gris) cuando el usuario hace clic en el campo de texto. en la nueva ventana ¿Alguna forma de evitar eso?

He intentado subclasar NSWindow y reemplazando canBecomeKey (return YES) y canBecomeMain (return NO) pero la ventana todavía roba el foco.

EDIT: lloro :-(No puedo encontrar una forma de resolver el problema del webkit. Por otro lado, encontré una manera de forzar a la ventana principal de mi aplicación a mantener el estado activo aunque tiene una ventana emergente con estado de clave. Sin embargo, tiene consecuencias involuntarias al usar la entrada de texto en el cuadro de diálogo emergente (que debe forzarse en el estado de ventana de clave). Retroceso no funciona :: sacude la cabeza :: y eventos de ratón no están siendo distribuidos a los puntos de vista webkit a continuación (para mouseovers en los componentes integrados en el html). Craptacular.

Josh

+0

¿Ha intentado agregar su vista como una subvista de la vista web? –

+0

No, eso tampoco funciona – strange

Respuesta

2

Un poco tarde, pero me di un golpe en la cabeza al mismo problema y dos años después de la q Pregunta: Todavía no pude encontrar la respuesta. En mi caso, establecer wantsLayer = YES en la vista que quería dibujar sobre WebView resolvió el problema.

+0

Esto también me funcionó, ¡gracias! – starkos

Cuestiones relacionadas