Я разрабатываю плагин SIMBL для TextEdit, плагин добавляет дополнительное меню. В меню есть несколько пунктов, которые при выборе (помимо прочего) отправляют сообщения в мое собственное приложение. Для этого я использовал NSDistributedNotificationCenter, однако я не могу отправлять уведомления из моего пакета в TextEdit.
Я проверил код, который использую в отдельном приложении, и, похоже, он работает, поэтому я не понимаю, почему мой пакет в TextEdit не может отправлять сообщения.
Код почтового уведомления:
NSDictionary *user = [NSDictionary dictionaryWithObjectsAndKeys:
@"TextEdit", @"applicationName",
@"289", @"applicationVersion",
@"1", @"menuItem", nil];
NSString *observedObject = @"com.drake.DDX";
NSDistributedNotificationCenter *center = [NSDistributedNotificationCenter defaultCenter];
[center postNotificationName:@"DDXNotification" object:observedObject userInfo:user deliverImmediately:YES];
И код в приемнике:
NSString *observedObject = @"com.drake.DDX";
NSDistributedNotificationCenter *center = [NSDistributedNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(receiveNotification:) name:@"DDXNotification" object:observedObject];
Этот код работает, если я добавляю его в другое приложение, поэтому я думаю, что в TextEdit или SIMBL происходит что-то, чего я не знаю.
Я проверил, что пункты меню правильно выполняют метод, показав NSAlert в TextEdit, как только метод будет выполнен.
Любая помощь приветствуется.
(Правка) Я обнаружил, что когда я публикую уведомление, если словарь userInfo равен нулю, мое приложение получает уведомление, поэтому возникает проблема с отправляемым мной NSDictionary или сигнатурой метода получателя.