rob*_*ahl 20 macos osx-mountain-lion nsusernotification
嘿,我正在玩一个小的可可应用程序并在Mountain Lion中使用新的Notification Center API.但是,我的应用程序现在存在于通知中心设置中,以及日历,消息等.
因为只是我在玩,我希望它现在从列表中消失,但我无论如何都找不到它,尝试了几件事,拖出来,按住alt +右键等等.有谁知道填充该列表的(可能是)plist位于何处?
Sea*_*fet 31
我被困在同一条船上.
虽然我不认为从Notification Center中删除已经注册的应用程序是一个记录的步骤,但显然有一些设置可以做到这一点.这是我发现的.此数据不存储在plist中,而是存储在sqlite数据库中.
如果你看~/Library/Application Support/NotificationCenter/<id>
(在我的情况下,我在NotificationCenter下只有一个目录),你会<id>.db
在目录下看到一个文件.
编者注:Hofi指出,由于macOS 10.10表示SQLite数据库可以在shell命令返回的目录中找到
$(getconf DARWIN_USER_DIR)com.apple.notificationcenter/db
,只需命名db
.
里面戳,我看到这样的表app_info
,app_source
,presented_notifications
,等.此外,该模式包括清理触发,看起来像这样:
CREATE TRIGGER app_deleted AFTER DELETE ON app_info
BEGIN
DELETE FROM scheduled_notifications WHERE app_id=old.app_id;
DELETE FROM presented_notifications WHERE app_id=old.app_id;
DELETE FROM presented_alerts WHERE app_id=old.app_id;
DELETE FROM notifications WHERE app_id=old.app_id;
DELETE FROM app_push WHERE app_id=old.app_id;
DELETE FROM app_loc WHERE app_id=old.app_id;
DELETE FROM app_source WHERE app_id=old.app_id;
END;
Run Code Online (Sandbox Code Playgroud)
使用sqlite3客户端,如果你这样做
select * from app_info;
Run Code Online (Sandbox Code Playgroud)
第一列是app_id
您的应用程序,第二列是您的应用程序的bundleid.根据bundleid查找您的应用程序.然后做一个
delete from app_info where app_id = <app_id>
Run Code Online (Sandbox Code Playgroud)
您使用上面的select命令找到了正确的app_id.
令人沮丧的是,在完成此操作后,NotificationCenter中的所有内容都处于中间位置(中心和系统偏好设置).我不得不退出并重新登录以查看更改是否生效,但幸运的是,我的多个测试应用程序现已消失;-)
如果有人知道一种不那么复杂的方式,我全都听见了.
当我陷入困境时,以下也许是费力的方法似乎对我有用。它避免更改AppID / etc。至少。
rm -rf ~/Library/Developer/Xcode/DerivedData/*
killall usernoted
killall NotificationCenter
rm ~/Library/Application Support/NotificationCenter/*
此方法不需要重新启动/注销。
小智 5
我遇到了 BetterTouchTool 卸载后未从通知中心消失的问题。不幸的是,这里提到的方法对我不起作用,但我最终想通了。
对于在 High Sierra 下无法正常工作的任何人:
在终端中,导航到NotificationCenter文件夹:
cd $(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/
Run Code Online (Sandbox Code Playgroud)使用 pwd 获取路径并复制到剪贴板(应该类似于 /var/folders/c3/289nmdsd2cz68yd5p47k553w0000gn/0/com.apple.notificationcenter)
pwd
Run Code Online (Sandbox Code Playgroud)可能有一种更优雅的方式,但这对我有用。请注意,由于某种原因,数据库会被重建,而 application_id 仍然存在于 db 表中(app
顺便说app_id
一句,它是在 High Sierra 上调用的),但该条目从通知中心消失了。
归档时间: |
|
查看次数: |
27531 次 |
最近记录: |