На моем iPhone до iOS 6 каждый раз, когда воспроизводится музыка, появляется значок воспроизведения (и исчезает, когда музыка не воспроизводится).
Как я могу добиться аналогичного эффекта в строке меню OSX Mountain Lion?
Вот пример кода для этого в Cocoa (вы можете вставить его в новый проект XCode и собрать):
AppDelegate.h :
NSStatusItem* statusItem;
AppDelegate.m :
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[[NSDistributedNotificationCenter defaultCenter] addObserver:self
selector:@selector(iTunesNotification:)
name:@"com.apple.iTunes.playerInfo"
object:nil]; //registering for notifications from iTunes
[NSApp setActivationPolicy:NSApplicationActivationPolicyProhibited]; //No icon in the dock, menubar only
statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; // For the icon in the status bar
}
- (void) iTunesNotification:(NSNotification *)note {
NSDictionary *information = [note userInfo];
NSString* state = [information objectForKey:@"Player State"];
if([state isEqualToString:@"Paused"]) {
//hiding the indicator
[statusItem setTitle:@""];
} else if ([state isEqualToString:@"Playing"]) {
//showing the indicator
[statusItem setTitle:@"▶"];
}
}
Единственный недостаток, который я заметил в этом образце, это то, что я использую символ для значка воспроизведения, а не изображение. Это может быть проблемой, когда кодировка что-то портит.
Вы можете взглянуть на некоторые приложения в строке меню, которые управляют iTunes для вас. У некоторых из них может быть хороший интерфейс для этого. Вот несколько http://mac.appstorm.net/roundups/music-roundups/five-slick-menu-bar-apps-for-controlling-itunes/
Матье Риглер
басист7
Матье Риглер