Обработка событий NSButton в C

#c #objective-c #cocoa #nsbutton

#c #objective-c #cocoa #nsbutton

Вопрос:

Я создаю тонкий слой C поверх виджетов Cocoa, и возникает проблема обработки событий NSButton без объекта ObjC в качестве целевого.

Есть идеи, как я мог бы использовать методы класса c для обработки нажатия кнопки?

Например:

 [button setTarget:cppObj];
[button setAction:@(cppObjMethod:)]
  

Приведенный выше код, конечно, не работает.

Ответ №1:

Вам нужно было бы установить цель и действие для класса / метода Objective-c, который сам вызывает код C .

Комментарии:

1. Да, похоже, мне придется пойти этим путем — подклассировать каждый обернутый виджет и реализовать методы событий, которые работают с моей логикой. wxWidgets делает это по-другому, похоже, это связано с некоторой магией ASM, но мне это сейчас не нужно.

2. Да, вы могли использовать методы среды выполнения и перехватывать сообщения / передавать их в код c и т.д., Но это может стать очень грязным, очень быстро!