2011-09-28 2 views
8

Desde k CGWindowNumber, cómo obtengo NSWindow ref. He intentado utilizar:Obtener NSWindow desde kCGWindowNumber

[NSApp windowWithWindowNumber:windowNumber] 

pero siempre consigo un valor nulo. Necesito obtener el NSWindow para aplicar [window setlevel:NSFloatingWindowLevel], que he configurado siempre sobre una ventana determinada. ¿Alguien sabe cómo resolver este problema o tiene alguna solución alternativa?


Gracias por la respuesta, pero esta no es la solución, ya había intentado, pero no funciona, en realidad hice una prueba, He probado el siguiente código:

for (NSInteger i = 0; i <10000; i + +) { 
NSWindow * wind; 
wind = [NSApp windowWithWindowNumber: windowNumber]; 
NSLog (@ "\ n Window:% @", wind); 
} 

pero el resultado es siempre el Window: (null)

Tengo una lista de ventanas, donde puedo obtener el número de propietario de la ventana ecc .. ecc ... y ahora tengo que configurar el siempre en la parte superior de algunas ventanas.

El siempre en la parte superior es posible conjunto con: [window setlevel:NSFloatingWindowLevel], la ventana es un objeto NSwindow, es real?

¿Tiene una solución? u otra idea, por mi problema?

+0

¿De dónde sacas el número de ventana? – omz

Respuesta

2

kCGWindowNumber es una CFNumber/NSNumber, -windowWithWindowNumber: espera un NSInteger. Necesitará extraer el número entero de la referencia numérica de la ventana (con -integerValue) antes de pasarlo al -windowWithWindowNumber:.

+0

Esto funciona solo para ventanas que pertenecen a la aplicación que lo llama. Pero para otros '[NSApp windowWithWindowNumber: [[[NSWindow windowNumbersWithOptions: NSWindowNumberListAllApplications] objectAtIndex: i] integerValue]];' devuelve nil. ¿Por qué? – Garnik

+0

La documentación para 'windowWithWindowNumber:' dice: "puede devolver' nil' para números de ventana encontrados usando 'windowNumbersWithOptions:' si no hay un objeto de ventana correspondiente ** propiedad de su aplicación ** ". –

+0

oops ... se perdió eso ... necesita alguna otra solución – Garnik