Путь к событию в плагине Mozilla на Mac - PullRequest
0 голосов
/ 04 марта 2010

Я пишу плагин Mozilla для Mac.Я пытаюсь записывать события, такие как нажатия кнопок и т. Д. Я делал обычные вещи, создавая свои представления в Inteface Builder и связывая sentActions с методами в моей программе.Это работает в автономных программах.

Однако в моем плагине NPAPI эти методы никогда не вызываются.Кнопка реагирует, нажимает, что угодно, но она не выполняет своих действий.

Вместо этого вызывается метод NPP_HandleEvent, но я никогда не получаю событие MouseDown или MouseUp, только UpdateEvt.

Я настроил кнопки для принятия кликов через: (superview - это представление Mozilla, topview - это верхняя часть моей иерархии представлений.)

[superView setNextResponder: topView];[topView setNextResponder: nil];[browserWindow makeFirstResponder: topView];

НИКОГДА НЕ ЯВЛЯЕТСЯ: я идиот.Это вызывает кнопку отправленных действий.Я смотрел на неправильный метод.Это научит меня обходить метод zoom: когда я на самом деле использую doZoom: method ... D'oh,.

1 Ответ

1 голос
/ 05 марта 2010

Итак, проблема была в том, что я не мог заставить кнопки работать. Кнопки должны были (например) масштабировать изображение в IKImageView. (или, вернее, увеличить вид). Не похоже, что это работает. Экран много мигал, но ничего не происходило ... Я добавил printf в свой метод масштабирования, и он никогда не вызывался! и поэтому я задал вопрос.

Позже я заметил, что я не ПЫТАЮСЬ , чтобы вызвать zoom, я звонил doZoom! doZoom был вызван. И причина, по которой это не было увеличение, была не связанной проблемой.

Проблема закончилась тем, что я отправлял setImage в свой IKImageView при каждом событии, которое переустанавливало представление в 1-1, в режиме правого поворота. Как только я снял дополнительный вызов setImage, все стало работать.

В том маловероятном случае, если кто-нибудь еще испытает это, ответом будет мой хитрый план мирового господства:

шаг 1: не будь идиотом.

шаг 2: ???????

шаг 3: доминировать в мире.

(Если бы я мог освоить шаг 1, я мог бы просто выяснить, какой шаг 2 был B -)

...