Как создать оконный плагин?

Я создал плагин Safari с использованием NPAPI, и я хочу добавить NSView в мой плагин.

Когда я пытаюсь получить функцию выброса NPWindow NPP_SetWindow(экземпляр NPP, окно NPWindow*), второй параметр равен nil.

Я думаю, что мой плагин без окон, но я не знаю, как создать оконный.

1 ответ

Решение

NPAPI на Mac не поддерживает NSView в качестве оконного режима. Есть два поддерживаемых режима:

Раньше был режим QuickDraw, но это устарело.

Для получения дополнительной информации см . Отличный пост в блоге Стюарта Моргана на эту тему.

Можно сделать рендеринг NSView в контексте CoreGraphics, но вам придется проксировать все события, и это далеко не идеально.

РЕДАКТИРОВАТЬ: Чтобы более подробно объяснить ответ на ваш вопрос, причина, по которой параметр окна имеет значение NULL (это C api, а не Obj C, так что это NULL, а не ноль... несмотря на то, что они одинаковы =]), потому что в Модель событий Какао, вы получаете CGContextRef как часть события рисования, которое действует только в контексте этого события.

Другие вопросы по тегам