Уже несколько дней я пытаюсь решить следующую проблему, читая все, что я нашел в Интернете о npapi на Mac.
Цель состоит в том, чтобы иметь плагин npapi, который работает для safari и firefox (mac),Мое программное обеспечение (которое я не могу переписать специально для этой цели, имеющий около 45000 строк кода на C) основано на NSView, подключенном к NSDocument ....
У меня есть плагин на основе версии webkit, который я должен удалить(спасибо Apple!) на основе того же NSView.
У меня есть плагин версии npapi, который отлично работает на Firefox.В этом плагине npapi я использую графическое окно ref, я делаю NSWindow на основе этого: NSWindow * browserWindow = [[[NSWindow alloc] initWithWindowRef: wind] autorelease];
и я помещаю свой NSView в этоокно, и это работает.
Теперь, пб, я не могу сделать то же самое в сафари.
Посмотрите на прикрепленную картинку, окно не в окне сафари!
Я пробовал несколько способов ... это доза не работает.Может ли какао-гуру сказать, где я делаю что-то не так?или это известная проблема?
NPError NPP_SetWindow (экземпляр NPP, NPWindow * window) {
NP_CGContext * ctx = window-> window;void * wind = ctx-> window;
... в функции инициализации NSView:
NSWindow *browserWindow = [[NSWindow alloc] initWithWindowRef:wind];
self = [super initWithFrame:frame];
if( self )
{
[browserWindow makeFirstResponder: self];
[self setNextResponder: nil];
[browserWindow setContentView:self];
[self webPlugInInitialize];// my own initializing
}
return self;