Cocoa App 窗口有随机焦点

Posted

技术标签:

【中文标题】Cocoa App 窗口有随机焦点【英文标题】:Cocoa App windows have random focus 【发布时间】:2011-10-08 02:22:37 【问题描述】:

我有一个包含两个窗口的 MainMenu.nib 的 Cocoa 应用程序,但是当我运行该应用程序时,哪个窗口具有焦点是随机的。我希望其中一个窗口具有焦点。

我注意到的另一件事是,有时其中一个或另一个窗口会位于 xcode 窗口下方。我会假设它们都在 xcode 之上。

我没有看到任何将窗口设置为具有焦点的选项,奇怪的是,哪个具有焦点基本上是随机的。

【问题讨论】:

【参考方案1】:

我也有这些问题。 我所做的是,我在 applicationDidFinishLaunching 开始时在我想获得焦点的窗口上调用 makeKeyWindow。

假设您的 AppDelegate 中有两个窗口并将它们连接到 IB 中的窗口,并且您希望在启动时将焦点放在第二个窗口。

代码必须是这样的:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification

    [self.secondWindow makeKeyWindow]; // If you wanted to give the second window the focus 
    //[self.window makeKeyWindow];

窗口的顺序和哪个窗口在开始时具有焦点并不是完全随机的。 该应用程序会在您关闭应用程序时自动记住所有窗口的位置和顺序,并在您再次启动应用程序时恢复它。

【讨论】:

以上是关于Cocoa App 窗口有随机焦点的主要内容,如果未能解决你的问题,请参考以下文章

案例:Input事件有焦点App无焦点窗口

Cocoa/Objective-C - 带有文本输入的子窗口,而主窗口没有变为非活动状态

Cocoa 多窗口拖放示例

默认情况下,可可应用程序中的模态窗口不在焦点上

在 Cocoa App 的 QT 电影之间创建白色淡入淡出

如何在不同的窗口上将焦点设置为 QWidget