【问题标题】:How to make an NSWindow appear in front of other apps?如何让 NSWindow 出现在其他应用程序的前面?
【发布时间】:2015-06-04 23:02:16
【问题描述】:

对不起,如果这是一个明显的问题,但我是 Objective-C 的新手。

我正在制作一个菜单栏应用程序(不在 Dock 中,仅在菜单栏中显示),并且由于某种原因,当我打开一个窗口时,它出现在最后面,在所有其他应用程序的后面。我认为makeKeyAndOrderFront: 就足够了,但它似乎并不能解决问题。

那么如何让窗口出现在其他应用程序的前面呢?

【问题讨论】:

  • 你能告诉我们你的代码吗?您迄今为止尝试过的示例将帮助我们回答您的问题。
  • @Dan 我有一个菜单项将makeKeyAndOrderFront: 发送到 MainMenu.xib 文件中的窗口。我也读过一些关于setLevel:的东西,但我不太明白。

标签: objective-c


【解决方案1】:

您还需要激活它。

[NSApp activateIgnoringOtherApps:YES];
[window makeKeyAndOrderFront:nil];

如果这不起作用,您的窗口是否没有标题或类似的东西?如果有,需要关注Cocoa/OSX - NSTextField not responding to click for text editing to begin when titlebar is hidden

【讨论】:

  • 效果很好,谢谢!如果我可以问,nilmakeKeyAndOrderFront:nil 中做了什么?
  • 这是sender 对象。你应该传递负责做这件事的对象。如果有一天您覆盖makeKeyAndOrderFront,可能会很有用。但默认实现不使用它。更多信息:stackoverflow.com/questions/5578139/…
猜你喜欢
  • 2012-06-09
  • 2021-12-13
  • 1970-01-01
  • 2012-07-30
  • 1970-01-01
  • 1970-01-01
  • 2012-12-27
  • 2019-05-13
  • 2016-05-31
相关资源
最近更新 更多