gpt4 book ai didi

macos - 为什么升级到 XULRunner 33 后,我无法在 Mac OS X 10.9 上 Cmd-Tab 到我的应用程序窗口?

转载 作者:行者123 更新时间:2023-12-04 15:43:18 27 4
gpt4 key购买 nike

我有一个以前运行 XULRunner 1.9.2(旧的,我知道)的独立 XULRunner 应用程序。我刚刚升级到 XULRunner 33。

以前,当我在本地开发(Mac OS X 10.9.5 的 MacBook Pro)时,我经常在我的 IDE 和我的应用程序之间使用 Cmd+Tab。

升级后,我不能再这样做了。我的桌面上仍然有一个窗口(如 main.xul 中所定义),但它不再出现在我的 Cmd+Tab 列表中。我必须在桌面上“找到”它。

关闭窗口会退出应用程序等,而我得到一个应用程序窗口这一事实意味着我的 main.xul是正确的......但我不知道这是为什么。

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://my-app-name/skin/css/main.css" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://my-app-name/locale/main.dtd">
<window id="main" title="&window-title;" width="750" height="530" persist="width,height,screenX,screenY,sizemode" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<script><!-- MY APPLICATION CODE HERE --></script>

<keyset>
<key modifiers="accel" key="W" oncommand="window.close()"/>
<key modifiers="accel" key="Q" id="quit"/>
</keyset>

<toolbox>
<menubar>
<menu id="menu_file" label="File" hidden="true">
<menupopup>
<menuitem id="menu_FileQuitItem" key="quit" label="Quit" oncommand="goQuitApplication();"/>
</menupopup>
</menu>
</menubar>
</toolbox>
</window>

我已通读 Windows and menus in XULRunner教程:

XULRunner 1.9.2 上的相同代码运行良好,我可以“激活”窗口。使用新的 XULRunner,窗口标题在 Mac OS X 中显示为灰色且不可选择。

关于尝试什么的任何想法?

I don't know if it's helpful, but I also used to get a menu bar in OS X as well, when the window was selected.即使现在我单击窗口的标题栏,OS X 显示的菜单栏也不会显示我的应用程序菜单。

最佳答案

我不知道发生了什么更改,或者他们何时更改了它,但这种行为在 MDN 上有所记录。
摘自 Getting started with XULRunner :

On the Mac, before you can run a XULRunner application with everything intact, you must install it using the --install-app xulrunner commandline flag. Installing the application creates an OS X application bundle:


该页面继续介绍如何执行此操作的一些步骤,但我从未能够让它们与现代 XULRunner 版本一起使用。
我能够让现代 XULRunner 版本完全工作的唯一方法是手动创建应用程序包。
在本例中,我将使用 the "hello world" example在 MDN 文档中引用。
第一步:
创建以下目录结构。
hello.app/
Contents/
MacOS/
Resources/
第二步:
Download the version of XULRunner runtime you want (我使用的是 33),然后提取 XUL.framework .
第三步:
复制 XUL.framework/Versions/Current/中的所有文件至 hello.app/Contents/MacOS/ .
同时复制 dependentlibs.list进入 hello.app/Contents/Resources/ 第四步:
下载 the example files , 并将以下文件和目录复制到 hello.app/Contents/Resources/ .
  • chrome/
  • defaults/
  • application.ini
  • chrome.manifest

  • 第五步:
    由于 another issue , xulrunner二进制文件不会自动找到 application.ini就像它应该的那样。为了解决这个问题,我们需要一个 stub 加载器,就像我之前写的一样。
    #!/bin/sh

    runpath="`dirname "$0"`"
    contentsdir="`cd "$runpath"/.. > /dev/null && pwd`"
    exec "$runpath/xulrunner" --app "$contentsdir/Resources/application.ini"
    创建一个名为 hello 的新文件在 hello.app/Contents/MacOS/hello ,将上面的代码放入其中,并赋予其可执行权限( chmod +x hello)。
    第六步:
    现在我们需要一个 Info.plist文件。这是我根据 Deploying XULRunner 创建的例子。请注意 CFBundleExecutable必须与上面的 stub 加载程序文件名匹配。
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleExecutable</key>
    <string>hello</string>
    <key>CFBundleGetInfoString</key>
    <string>1.0</string>
    <key>CFBundleIconFile</key>
    <string>app_icon.icns</string>
    <key>CFBundleIdentifier</key>
    <string>net.yourcompany.yourapplication</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>applicationName</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>1.0</string>
    </dict>
    </plist>
    将此文件保存在 hello.app/Info.plist 下.
    第七步:
    创建一个名为 PkgInfo 的新文件在 hello.app/PkgInfo , 并将此文本放入其中。
    APPL????
    第八步:
    您现在应该能够使用菜单和文档图标以及 Cmd + Tab 功能运行您的应用程序。您可以通过 Finder 或命令行打开它。
    $ ./hello.app/Contents/MacOS/hello

    关于macos - 为什么升级到 XULRunner 33 后,我无法在 Mac OS X 10.9 上 Cmd-Tab 到我的应用程序窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29741315/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com