【问题标题】:Get NSWindow from kCGWindowNumber从 kCGWindowNumber 获取 NSWindow
【发布时间】:2011-11-27 01:44:11
【问题描述】:

从 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... 现在我需要将始终设置在某些窗口的顶部。

Always on top 可以设置为:[window setlevel:NSFloatingWindowLevel],window 是一个NSwindow 对象,它是真的吗?

你有解决办法吗?或其他想法,我的问题?

【问题讨论】:

  • 你从哪里得到窗口号?

标签: objective-c nswindow nsapplication always-on-top


【解决方案1】:

kCGWindowNumberCFNumber/NSNumber-windowWithWindowNumber: 需要 NSInteger。您需要先从窗口编号引用中提取整数(使用-integerValue),然后再将其传递给-windowWithWindowNumber:

【讨论】:

  • 这仅适用于属于调用它的应用程序的窗口。但对于其他人[NSApp windowWithWindowNumber:[[[NSWindow windowNumbersWithOptions:NSWindowNumberListAllApplications] objectAtIndex:i] integerValue]]; 返回零。为什么?
  • windowWithWindowNumber: 的文档说:“如果没有对应的窗口对象由您的应用拥有,则可能返回 nil 用于使用 windowNumbersWithOptions: 找到的窗口编号”。
  • 哎呀...错过了...需要其他解决方案
  • @Garnik 你找到什么了吗?
  • @AmitHooda 对不起,这是 8 年前的事了,不幸的是我不再在那里工作了。最终我什至不记得我是如何解决这个问题的。对不起
猜你喜欢
  • 1970-01-01
  • 2015-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
  • 2011-07-23
  • 2011-07-28
相关资源
最近更新 更多