Я реализовал функцию «Не беспокоить центр уведомлений MacOS» на Ma c программным способом.
Среда: macOS Mojave 10.14.6, Xcode 11.3.1.
Вот мой код (Objective- C):
- (void)setDoNotDisturbEnabled:(BOOL)flag{
CFStringRef appID = CFSTR("com.apple.notificationcenterui");
CFPreferencesSetValue(CFSTR("doNotDisturb"),
(__bridge CFPropertyListRef)([NSNumber numberWithBool:flag]),
appID,
kCFPreferencesCurrentUser,
kCFPreferencesCurrentHost);
if(flag){
CFPreferencesSetValue(CFSTR("doNotDisturbDate"),
(__bridge CFPropertyListRef)([NSDate dateWithTimeIntervalSinceNow:0]),
appID,
kCFPreferencesCurrentUser,
kCFPreferencesCurrentHost);
}else{
CFPreferencesSetValue(CFSTR("doNotDisturbDate"),
NULL,
appID,
kCFPreferencesCurrentUser,
kCFPreferencesCurrentHost);
}
[[[NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.apple.notificationcenterui"] firstObject] forceTerminate];
}
Когда я прохожу " ДА "для метода, значок в строке меню тускнеет, и после нажатия на него я вижу, что переключатель" Не беспокоить "включен.
Когда я передаю" НЕТ "методу, переключатель" Не беспокоить " выключен, но затемненный значок не восстанавливает нормальное состояние.
Небольшой поток, если кто-нибудь может помочь мне исправить это, будет идеальным.