这个需求比较无聊,请勿喷,我不是直接来求代码的,是问一下方案细节。
我想自己写一个 .app 应用,可以长驻在顶部菜单栏,在 mbp 充电的时候,监听 macOS 的电池电量百分比,到达某个设定值比如 90% 的时候会以某种方向通知我。
因为我就只想要这么一个小功能,也不想格外装什么软件,无聊想试着写一下,不知道会踩到什么坑:
PS:以前我自己为某个局域网 bbs 写过一个通知器,就是打开 Terminal,跑一个 python 脚本,这个脚本会每隔一分钟请求我本人账号的 bbs 未读通知数,如果这个通知数有变化,就通过 AppleScript 弹出一个通知提醒我。但是这个有个不好的地方就是要一直开着 Terminal。
1
nyanyh 2020-02-04 20:40:10 +08:00
|
2
nyanyh 2020-02-04 20:40:34 +08:00
|
4
MartinWu 2020-02-05 14:51:00 +08:00
PS 部分,用 crontab 不就可以了?
|
5
MartinWu 2020-02-05 14:51:39 +08:00
主题部分,你看看 bitbar 合适你用不。
|
6
jmyz0455 OP @MartinWu 请问 PS,是指 IOPSCopyPowerSourcesInfo 和 IOPSCopyPowerSourcesList 吗?之前在家里没电脑,现在复工了才开始写🤣
|
7
jmyz0455 OP |
8
jmyz0455 OP @nyanyh 您的链接里,有一句:
NSUserNotificationCenter.default.delegate = self 会报错: Cannot assign value of type 'MyController' to type 'NSUserNotificationCenterDelegate?' 不知道怎么解决? 我在网上 copy 了一段: ``` @IBAction func notificationAction(_ sender: Any) { let content = UNMutableNotificationContent() content.title = "新的方式" content.body = "我是一个新的方式" content.userInfo = ["method": "new"] content.sound = UNNotificationSound.default content.categoryIdentifier = "NOTIFICATION_DEMO" let acceptAction = UNNotificationAction(identifier: "SHOW_ACTION", title: "显示", options: .init(rawValue: 0)) let declineAction = UNNotificationAction(identifier: "CLOSE_ACTION", title: "关闭", options: .init(rawValue: 0)) let testCategory = UNNotificationCategory(identifier: "NOTIFICATION_DEMO", actions: [acceptAction, declineAction], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: "", options: .customDismissAction) let request = UNNotificationRequest(identifier: "NOTIFICATION_DEMO_REQUEST", content: content, trigger: nil) // Schedule the request with the system. let notificationCenter = UNUserNotificationCenter.current() notificationCenter.delegate = self notificationCenter.setNotificationCategories([testCategory]) notificationCenter.add(request) { (error) in if error != nil { // Handle any errors. } } } ``` 里面的 notificationCenter.delegate = self 也报了同样的错,这个 self 请问应该如何解决呢。 |