2011-09-28 68 views
8

從k CGWindowNumber,我該如何獲得NSWindow ref。 我嘗試使用:從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對象,這是真的嗎?

您有解決方案嗎?或另一個想法,爲我的問題?

+0

你從哪裏得到窗口號碼? – omz

回答

2

kCGWindowNumberCFNumber/NSNumber-windowWithWindowNumber:期望一個NSInteger。您需要從窗口號碼引用(-integerValue)中提取整數,然後將其傳遞到-windowWithWindowNumber:

+0

這僅適用於屬於調用它的應用程序的窗口。但對於其他'[NSApp windowWithWindowNumber:[[[NSWindow windowNumbersWithOptions:NSWindowNumberListAllApplications] objectAtIndex:i] integerValue]];'返回nil。爲什麼? – Garnik

+0

「windowWithWindowNumber:'的文檔說:」如果windowNumbersWithOptions:'沒有相應的窗口對象**擁有您的應用程序**「,則可能返回'nil'。 –

+0

哎呀...錯過了...需要一些其他解決方案 – Garnik