如何在应用关闭时禁用自动隐藏停靠自动隐藏


2

我不是AppleScript Ninja,但我跟着这个 链接 在打开虚幻引擎时自动隐藏Dock

tell application "System Events"
  set autohide of dock preferences to true
end tell
tell application "UE4Editor" to activate

但是,如何在虚幻引擎关闭时禁用自动隐藏?我正在运行此脚本作为应用程序。

有什么办法可以将这个脚本集成到 Unreal Engine 应用程序吗?所以,我不必手动点击这个应用程序&一切都是在幕后自动完成的?

Answers:


2

如果你不想担心创建一个 竞争条件 不得不关闭 UE4Editor 在关闭之前,如在另一个答案中所提到的那样,有一个很好的app叫 EventScripts ,价格为3.99美元 应用商店 ,你可以用来 触发 AppleScript的 脚本 和或 贝壳 脚本 什么时候 某些 事件 触发

这是一个例子 AppleScript的 脚本 那将 隐藏/显示 码头 什么时候 UE4Editor 启动/退出

on run eventArgs
    set theAppName to applicationName in eventArgs
    set theTrigger to trigger in eventArgs
    if theTrigger is "Application launched" and theAppName is "UE4Editor" then
        hideDock(true)
    else if theTrigger is "Application quit" and theAppName is "UE4Editor" then
        hideDock(false)
    end if
end run

on hideDock(b)
    tell application "System Events"
        set autohide of dock preferences to b
    end tell
end hideDock

脚本编辑器 ,保存以上 AppleScript的 例如, UE4Editor - On Open和Close.scpt 〜/ Library / Application Scripts / net.mousedown.EventScripts / ,(安装EventScripts后)。

现在进来 EventScripts ,添加相同 脚本 两次,同时设置 事件 对于 申请推出 其他 申请退出

现在,当 UE4Editor 发射, 码头 是隐藏的,什么时候 UE4Editor 退出 码头 没有隐藏。

EventScripts

EventScripts 有一长串的 事件 它可以 触发 一个脚本。请查看以下链接以获取更多信息:

注意:我不是EventScripts的开发者,只是一个满意的客户。


1

这取决于UE4Editor是否将从shell脚本启动,因此我无法测试它...它可以正常使用TextEdit。

将其另存为独立应用程序,而不是脚本。它应该可以工作,但应用程序更整洁。

tell application "System Events" to set autohide of dock preferences to true
tell current application to do shell script "/Applications/UE4Editor.app/Contents/MacOS/UE4Editor"  
tell application "System Events" to set autohide of dock preferences to false

当你从shell脚本启动时,脚本应用程序将隐藏Dock,启动你的编辑器,然后等到UE4Editor退出,然后从它停止的地方继续,隐藏Dock。它会自行退出。
这确实意味着它会在会话期间看起来没有响应,但实际上这本身并没有引起任何问题。我有这样的脚本应用程序,可以打开一周或更长时间。完全没有伤害。

注意: 如果你在运行时重新启动Mac,Mac本身将恢复你上一次编辑器会话&因此将与脚本处于竞争状态。确保在关闭或重新启动之前退出编辑器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.