OS X Dock API? Получить значок активного приложения OS X со значками и другими модификациями

Есть ли API для получения значков открытых в данный момент приложений в Mac OS X? Я пытаюсь получить все значки активных приложений вместе с любыми значками в верхней части приложения (то есть количество новых сообщений в почте или текущая скорость загрузки в Transmission). Есть ли какой-нибудь Dock API?

Единственное упоминание API OSX для получения информации о текущих активных приложениях, которые мне удалось найти, - это API диспетчера процессов, в котором не упоминается возможность опроса док-станции или получения данных значков.

Что касается значков приложений, то единственная найденная мною документация связана с NSWorkspace: https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Workspace/introduction.html


person pokstad    schedule 31.03.2010    source источник


Ответы (1)


Похоже, Theocacao имеет хорошо документированный образец NSWorkspace, который используется для получения открытых приложений и извлечения их значков . Нет никакого упоминания о том, будет ли это также получать значки / модификации значка приложения или есть ли способ подписаться на уведомления, связанные с обновлениями значка.

Получение активных приложений:

NSWorkspace * ws = [NSWorkspace sharedWorkspace];
NSArray * apps = [ws launchedApplications];
NSLog (@"%@", apps);

Получение значка приложения:

NSWorkspace * ws    = [NSWorkspace sharedWorkspace];
NSString    * path  = [ws fullPathForApplication:@"Safari"];
NSImage     * icon  = [ws iconForFile: path];
person pokstad    schedule 31.03.2010