NSWorkspace 的 'frontmostApplication' 在初次使用后没有改变

NSWorkspace's 'frontmostApplication' doesn't change after initial use

我正在尝试获取当前活动(前台)应用程序的更新。甚至跨过电脑屏幕。我正在使用这段代码来尝试这样做:

print(NSWorkspace.sharedWorkspace().frontmostApplication?.localizedName)

这每 3 秒在命令行应用程序中循环一次,并打印到控制台。它适用于任何在首次启动时以活动状态打开的应用程序。

但是,与之后的第一个应用程序相比,它并没有改变。 1. 为什么要这样做? 2. 让它工作的正确代码是什么? 3、有没有办法在每次最前端的应用发生变化时,简单的获取应用名称? (最好在 swift 或 obj-c 中)

Is there a way to simply get the app name every time the forefront application changes?

使用NSWorkspace通知NSWorkspaceDidActivateApplicationNotification