objective-c - 与 FireBreath 一起使用时使 NSWindow 出现在前面

标签 objective-c macos firebreath

我正在使用 FireBreath 创建一个跨浏览器插件,该插件使用一些针对相应平台的 native 库(一些基于 .NET 的 Windows DLL 和基于 Objective-C 的 dylibs/frameworks 用于 Mac)。该库显示一个 UI,它最终应该出现在其他窗口的前面(特别是在浏览器窗口的前面)。对于 Windows,我使用 win32 API 传递窗口处理程序并将其置于前台。目前一切正常。但是,我目前无法找到适用于 Mac 的解决方法,因此该窗口始终出现在 Mac 浏览器的后面。这个问题有什么解决方法吗?

我尝试了以下方法但没有成功:

1) 将 NSWindow 的级别设置为更高的值(例如:NSFloatingWindowLevel)并调用 orderFront 方法。

2) 在 NSApp 中设置 activateIgnoringOtherApps 属性并调用 makeKeyAndOrderFront 方法。

非常感谢这方面的任何帮助。

最佳答案

感谢大家的支持。我设法解决了这个问题,我在这里回复是为了线程的完整性。

这个问题是由 Objective-C 中的一个基本事实引起的,它与 FireBreath 无关。当调用方法将其置于前台时,NSWindow 中的窗口对象未初始化 (nil)。修复后,只需将窗口级别设置为 NSFloatingWindowLevel 即可解决此问题。

关于objective-c - 与 FireBreath 一起使用时使 NSWindow 出现在前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16271863/

相关文章:

python - 在 macOS BigSur 上使用 Homebrew 软件 python 安装 numpy 的问题

c++ - 在 firebreath 插件上创建子可编辑文本框窗口

ios - 如何使用多个objectForKey对NSMutableDictionary的NSMutableArray进行排序

ios - 如何在 iOS 应用程序中更改布局方向(LTR 和 RTL)?

objective-c - facebook graph API 和 objective-C 中的解析结果

html - Font Awesome 图标在 Macbook Pro 上不可见(欢迎 Macbook Pro 用户)

xcode - High Sierra 上的 Home-brew 安装失败

firebreath - firefox 无法识别 firebreath JSAPI

plugins - 如何为 IE、Firefox 和 Chrome 编写网络浏览器插件

ios - ios 中 cornerradius 中的段控制问题