【问题标题】:cocoa stopModal to close the Modal Window but do not give focus to previous applicationcocoa stopModal 关闭模态窗口但不将焦点放在以前的应用程序上
【发布时间】:2015-02-25 23:00:46
【问题描述】:

我为 Safari 编写了一个 npapi 插件,并编写了一个框架来显示模式窗口对话框以获取密码。 Safari 调用插件和插件调用框架。一切正常,但是当我关闭对话框时,Safari 没有获得焦点,我必须单击 html 才能激活 safari,这样才能获得焦点。

我用以下代码显示模态对话框:

NSModalSession session = [NSApp beginModalSessionForWindow:[self window]];
for (;;)
{
    if ([NSApp runModalSession:session] != NSModalResponseContinue)
        break;
}
[NSApp endModalSession:session];

并关闭模式窗口:

[self stopModal];

但是如果我显示模态窗口:

[NSApp runModalForWindow:[self window]];

效果很好。

有什么问题?

【问题讨论】:

    标签: macos cocoa modal-dialog focus


    【解决方案1】:

    显示模态对话框(实际上,通常是打开窗口)不是 NPAPI 支持的部分,强烈建议不要这样做。问题是您正在做一些 NPAPI 不适合做的事情,并且与进程外插件托管的交互很差。

    【讨论】:

    • 可能你是对的 smorgan ,但我在我的框架中找到了一个解决方案,当我关闭模式窗口时。我让 Safari 处于活动状态,所以它变得专注。
    • 你的问题是它为什么坏了,而不是是否有解决方法,这就是为什么我的答案是这样的。
    猜你喜欢
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 2016-06-21
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 2023-03-15
    相关资源
    最近更新 更多