如何禁止每次电子邮件邀请/更新时弹出 Apple iCal?

如何禁止每次电子邮件邀请/更新时弹出 Apple iCal?

我的 iCal 有新行为(自从升级到 SL 以来)。每次我在邮件中收到 ical 附件时,iCal 应用就会飞到我面前。我看不出有什么方法可以关闭此行为,而且当我忙于其他活动时,它会非常令人讨厌。帮忙吗?

编辑:我希望 iCal 添加邀请,这样当我使用 cmd-tab 切换到应用程序时,这些项目就会进入队列等待批准。我希望了解如何停止强制应用程序成为顶级窗口的弹出操作。

答案1

打开 Mail.app 中的偏好设置,点击常规选项卡。然后将“将邀请添加到 iCal”从“自动”更改为“从不”。

答案2

对我有用的解决方案是在日历启动后执行此命令:

defaults write com.apple.iCal NSDontMakeMainWindowKey YES

这有点麻烦,因为你必须记住在日历启动后执行此操作,而我总是忘记这样做。所以我写了一个小的 launchctl 脚本来帮我做这件事。

<?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>Label</key>
    <string>CalendarSquelch</string>
    <key>ProgramArguments</key>
    <array>
    <string>osascript</string>
    <string>-e</string>
    <string>tell application "System Events"
        set p to name of processes
        if p contains "Calendar" then
            do shell script "defaults write com.apple.iCal NSDontMakeMainWindowKey YES"
        end if
        end tell</string>
    </array>
    <key>StartInterval</key>
    <integer>300</integer> </dict> </plist>

此脚本每 5 分钟检查一次日历是否正在运行。如果正在运行,则执行那个小默认命令。将此文件保存到 ~/Library/LaunchAgents/CalendarSquelch.plist

然后运行以下命令来激活它:

launchctl load ~/Library/LaunchAgents/CalendarSquelch.plist 

这一切都是在 macOS Sierra 上完成的。

答案3

解决方案是在邮件偏好设置中。将常规设置中的“将邀请添加到日历”更改为“从不”。事件仍将添加到您的日历中,只是应用程序不会再弹出。

相关内容