我对Mac很陌生,但合理地使用了Windows。 我需要的是一个由库(dylib)打开和关闭的窗口。 这在MS Windows中很容易做到,但在Cocoa下似乎并不难。
我使用了Apple的'CocoaInCarbon'示例中的代码和C ++ Wrappers。
但NSApplicationLoad()
后跟[NSBundle LoadNibNamed:@"MyWindow" owner:self]
失败。这是由dylib不是捆绑引起的。
是否有其他方法可以在dylib中打开和控制窗口?
答案 0 :(得分:2)
是的,问题在于它不是捆绑;你的nib不可能在一个不存在的bundle里面,那么代码如何找到它来打开它呢?
您需要使用框架(这是一个包),并在该框架中发布nib,或者您需要在dylib中以编程方式创建整个窗口。
答案 1 :(得分:0)
如果共享库的级别不是很低并且特别涉及GUI,那么在Mac上发送dylib
并不是一种标准做法。您将其打包成framework
,这样它不仅可以在其中包含代码,而且可以在一个地方包含相关资源(笔尖,图像,声音)。
阅读this Apple document以了解正在发生的事情以及如何准备。或者,查看/System/Library/Frameworks/
以了解OS X本身如何提供库。