Macos 检查状态栏中是否存在项目?
是否可以检查OSX上的状态栏中是否可见系统项,即蓝牙图标Macos 检查状态栏中是否存在项目?,macos,cocoa,Macos,Cocoa,是否可以检查OSX上的状态栏中是否可见系统项,即蓝牙图标 以前有人试过这样做吗?文档中没有提及任何内容。活动菜单栏项目的路径列在~/Library/Preferences/com.apple.systemuiserver.plist 你可以这样检查 NSURL *userLibraryURL = [[NSFileManager defaultManager] URLForDirectory:NSLibraryDirectory inDomain:NSUserDomainMask appropri
以前有人试过这样做吗?文档中没有提及任何内容。活动菜单栏项目的路径列在
~/Library/Preferences/com.apple.systemuiserver.plist
你可以这样检查
NSURL *userLibraryURL = [[NSFileManager defaultManager] URLForDirectory:NSLibraryDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
NSURL *systemUIServerPreferences = [userLibraryURL URLByAppendingPathComponent:@"Preferences/com.apple.systemuiserver.plist"];
NSDictionary *data = [NSDictionary dictionaryWithContentsOfURL:systemUIServerPreferences];
BOOL bluetoothIsInMenuBar = [data[@"menuExtras"] containsObject:@"/System/Library/CoreServices/Menu Extras/Bluetooth.menu"];
NSLog(@"%d", bluetoothIsInMenuBar);
或者使用NSPredicate
NSURL *userLibraryURL = [[NSFileManager defaultManager] URLForDirectory:NSLibraryDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
NSURL *systemUIServerPreferences = [userLibraryURL URLByAppendingPathComponent:@"Preferences/com.apple.systemuiserver.plist"];
NSDictionary *data = [NSDictionary dictionaryWithContentsOfURL:systemUIServerPreferences];
NSPredicate *bluetoothPredicate = [NSPredicate predicateWithFormat:@"SELF contains 'Bluetooth'"];
BOOL bluetoothIsInMenuBar = [[data[@"menuExtras"] filteredArrayUsingPredicate:bluetoothPredicate] count];
NSLog(@"%d", bluetoothIsInMenuBar);