Могу ли я получать обратный вызов всякий раз, когда NSPasteboard записывается в?

Я читал Apple Руководство по программированию Pasteboard , но оно не отвечает на мой конкретный вопрос.

Я пытаюсь написать приложение Какао (для OS X, а не iOS), которое будет отслеживать все, что записывается на общий монтажный стол (так, всякий раз, когда какое-либо приложение копирует и вставляет, но не, скажем, перетаскивает и -drops, который также использует NSPasteboard). Я мог (почти) добиться этого, постоянно опрашивая общий монтажный стол в фоновом потоке и проверяя changeCount . Конечно, это заставит меня почувствовать себя очень грязным внутри.

Мой вопрос: есть ли способ попросить сервер Pasteboard уведомлять меня через какой-то обратный вызов каждый раз, когда в общий монтажный стол вносятся изменения? Я не смог найти ничего в справочнике по классу NSPasteboard, но надеюсь, что он скрывается где-то еще.

Другой способ, который я мог бы представить для этого, - это если бы существовал способ заменить общую реализацию монтажного стола на подкласс NSPasteboard. что я мог определить себя для выполнения обратного вызова. Может быть, что-то подобное возможно?

Я бы очень предпочел, если бы это было возможно с общедоступными API, разрешенными в App Store, но если необходимо использование частного API, я тоже воспользуюсь этим.

Спасибо!

41
задан Adrian Petrescu 17 February 2011 в 18:55
поделиться