Получить NSWindow из kCGWindowNumber

Из kCGWindowNumber, как мне получить NSWindow исх. Я пытался использовать:

[NSApp windowWithWindowNumber:windowNumber]

но я всегда получаю нулевое значение. Мне нужно, чтобы NSWindow применялось [window setlevel:NSFloatingWindowLevel], которое я установил всегда поверх данного окна. Кто-нибудь знает, как решить эту проблему или есть альтернативное решение?


Спасибо за ответ, но это не решение, я уже пробовал, но это не работает, на самом деле я сделал тест, я попробовал следующий код:

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

но результат всегда Window: (null)

У меня есть список окон, где я могу получить номер OwnerPid окна ecc.. ecc... и теперь мне нужно установить всегда поверх некоторых окон.

Всегда сверху можно установить с помощью: [window setlevel:NSFloatingWindowLevel], окно является NSwindow объектом, это реально?

У тебя есть решение? или другая идея, для моей проблемы?


person Esse    schedule 28.09.2011    source источник
comment
Откуда вы берете номер окна?   -  person omz    schedule 29.09.2011


Ответы (1)


kCGWindowNumber соответствует CFNumber/NSNumber, -windowWithWindowNumber: ожидает NSInteger. Вам нужно будет извлечь целое число из ссылки на номер окна (с -integerValue) перед передачей его в -windowWithWindowNumber:.

person 一二三    schedule 29.09.2011
comment
Это работает только для окон, которые принадлежат вызывающему его приложению. Но для других [NSApp windowWithWindowNumber:[[[NSWindow windowNumbersWithOptions:NSWindowNumberListAllApplications] objectAtIndex:i] integerValue]]; возвращает ноль. Почему? - person Garnik; 08.08.2013
comment
В документации для windowWithWindowNumber: сказано: может возвращать nil для номеров окон, найденных с помощью windowNumbersWithOptions:, если нет соответствующего объекта окна, принадлежащего вашему приложению. - person 一二三; 10.08.2013
comment
упс... пропустил... нужно какое-то другое решение - person Garnik; 22.08.2013
comment
@Гарник, ты что-то нашел? - person Amit Hooda; 28.05.2020
comment
@AmitHooda Извините, это было 8 лет назад, и, к сожалению, я там больше не работаю. В конце концов, я даже не помню, как я решил эту проблему. Извини - person Garnik; 01.06.2020