我使用全局快捷方式来弹出一个对话框。但是我想根据触发快捷方式时具有焦点的应用程序来填充对话框。
但我找不到办法做到这一点。我在这里阅读了扩展代码, 但很难知道如何修改代码,以及如何重新编译电子。
如果有人有指针,将不胜感激:)
我使用全局快捷方式来弹出一个对话框。但是我想根据触发快捷方式时具有焦点的应用程序来填充对话框。
但我找不到办法做到这一点。我在这里阅读了扩展代码, 但很难知道如何修改代码,以及如何重新编译电子。
如果有人有指针,将不胜感激:)
我自己找到了一个答案,看起来最前面的应用程序(至少在 OSX 上)它仍然是在调用之前具有焦点的应用程序。
这是我的 ClojureScript 代码,用于查找应用程序信息
(defn- get-current-app-info-osx
"Return info about the current frontmost application on OSX"
[]
(let [remote (js/require "remote")
nodobjc (js/require "nodobjc")]
(.framework nodobjc "AppKit")
(let [workspace (.NSWorkspace nodobjc "sharedWorkspace")
app (workspace "frontmostApplication")
app-name (str (app "localizedName"))
app-id (str (app "bundleIdentifier"))]
{:name app-name
:id app-id})))
我无法找到一种方法来知道之前哪个应用程序具有焦点,但我能够隐藏我的应用程序并将焦点返回到前一个应用程序,模拟从视图菜单中单击“隐藏”选项:
const menu = require('electron').Menu;
menu.sendActionToFirstResponder('hide:');
我希望它有所帮助。