在终端中调用框架 窗口似乎被阻止了



现在,我有一个名为"MyFramework.framework"的框架,其中包含一个window.nib,我写了一个示例在终端中调用它。法典:

//<MyFramework/myUI.h>
#ifndef Frmwork_myUI_h
#define Frmwork_myUI_h
#ifdef __cplusplus
extern "C"{
#endif
void ShowDialog();
#ifdef __cplusplus
}
#endif
#endif
//test.mm
#include <MyFramework/myUI.h>
#include <Foundation/NSRunLoop.h>
int main(int argc, char *argv[])
{
    ShowDialog() ;
    while (!isTransmitCompleted)
    {
       [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
    }
    return 0;
}
//build test.mm
g++ -c test.mm -o test.o
g++ test.o -o test -lpthread -framework Cocoa -framework AppKit -framework CoreData -framework Foundation -framework MyFramework
//run
$./test

对话框可以出现,但似乎被阻止了,它没有焦点,我不能输入任何东西,我什么也做不了,出了什么问题?

现在,我得到了解决方案。

在OS X 10.6中,我为Safari编写了一个npapi插件,在这个插件中,我调用了一个框架,该框架显示了一个模态窗口来获取密码。 关闭此模态窗口后,Safari似乎被阻止了。

在我的框架中,我通过runModalForWindow函数显示这个模态窗口,当我更改为runModalSession时,一切都运行良好。我不知道为什么,但它真的对我有用.

最新更新