删除Mac OSX上的预定通知

时间:2017-08-01 16:52:24

标签: macos notifications nsusernotification nsusernotificationcenter

我使用C#/ Mono安排NSUserNotificationCenter通知,如下所示:

var not = new NSUserNotification();
not.Title = ...;
not.DeliveryDate = ...;
not.DeliveryRepeatInterval = new NSDateComponents() {
  Second = 65
};
...
NSUserNotificationCenter.DefaultUserNotificationCenter
                        .ScheduleNotification(not);

这是按预期工作的。出现初始通知,然后在65秒延迟下一个,然后是下一个等等。

但是:在我退出应用程序后,通知一直出现!他们仍然这样做。

我删除了应用程序并清空了垃圾桶。我重启了我的Mac。我在设置/通知中心中打开/关闭应用程序的通知。一切都没有用。

我遵循建议删除OSX Sierra腹部的SQLite通知数据库。只有旧的 .db 文件。什么都没有改变。

我既不能从通知中心删除该应用程序,也不能停止预定的通知。

我还能做什么?

PS:确切地说:我检查了posting,但没有任何工作。

1 个答案:

答案 0 :(得分:0)

好的,我自己解决了这个问题。确实存在于previous posting中的解决方案。但我不知何故没有正确应用它。如果您在OSX Sierra上遇到不需要的通知,请执行以下步骤:

  1. 找到通知中心数据库:cd (getconf DARWIN_USER_DIR)/com.apple.notificationcenter/db(用反引号替换()!)
  2. 使用pwd确定完整路径,例如/var/folders/b4/qw_sstpn1jqd8ypb1zgc7vww0000gn/0/com.apple.notificationcenter/db。这引用了一个目录,而不是一个文件!
  3. 在找到的目录中打开名为db的文件,例如/var/folders/b4/qw_sstpn1jqd8ypb1zgc7vww0000gn/0/com.apple.notificationcenter/db/db - 是的,最后是db/db - 使用SQLite编辑器。
  4. 搜索显示select * from app_info where bundleid = "%yourappname%". Remember the app_id`值的应用。
  5. 删除应用信息记录,从而删除其他表中delete from app_info where app_id = <your app id>
  6. 的所有相关数据
  7. 如有必要,请将更改保存到数据库中。
  8. 重新启动Mac并重新登录。现在应该没事了。
  9. 我首先对我的应用仍然列在设置/通知中感到困惑。但至少烦人的通知不再出现了。

    祝你好运!

相关问题