swift - 如何快速检查哪个 NSViewController 处于事件状态

标签 swift macos nsviewcontroller

我有一个包含多个 ViewController 的应用程序,我需要在 AppDelegate 中检查哪个 ViewController 处于事件状态。例如,我将创建一个运行函数的计时器,该函数检查特定的 ViewController 是否处于事件状态,如果是,则执行一些操作。有什么办法吗?

最佳答案

NSApplication.sharedApplication().keyWindow

将返回具有键盘访问权限的当前窗口。从那里您可以内省(introspection) NSWindow 对象以确定它是哪个对象。

此外,如果您需要它以编程方式激活窗口。

NSApplication.sharedApplication().windows

将在您当前打开的应用程序中返回一个 NSWindows 数组。

window.makeKeyAndOrderFront(sender)

将使窗口成为焦点,即使它被最小化并使其成为键盘控制的关键窗口。

window.makeKeyWindow()

只会使窗口成为焦点并使其成为关键窗口。它不会使其脱离最小化。

关于swift - 如何快速检查哪个 NSViewController 处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27967945/

相关文章:

cocoa - 基于 View 的 NSTableView 中每一行的 NSViewController?

arrays - 如何使 Array<Any> 相等?

objective-c - 实例变量在 initWithNib 之后和 NSViewController 中的 IBAction 之前丢失值

arrays - 如何快速获取数组中最大元素的数量

r - OS X Yosemite 升级后无法在 R 中加载 X11

bash - 添加尾随逗号以确保 .csv 行具有相同的列数

Objective-C 编译器和编辑器

macos - 当用户返回 NSViewController 时执行某些操作

swift - 同步调度的保留计数如何工作?

ios - Swift - 带有 UIPickerView 完成按钮的 UIToolbar 在横向上消失