gpt4 book ai didi

cocoa - .so 运行时可链接库作为插件; cocoa 能力?

转载 作者:行者123 更新时间:2023-12-03 18:02:13 29 4
gpt4 key购买 nike

我正在为 OSX 图像处理应用程序编写一个插件接口(interface)。它的设计理念是插件应该尽可能简单,以便开发人员可以在看到示例代码后几分钟内进入并编写效果。为此,这些示例不需要或使用 XCode;而是使用 XCode。只是海湾合作委员会。一切都进行得非常顺利,我们(一般来说)已经实现了所有的设计目标。我们实际上为插件生成了 UI,这样他们就不必灵活地、以各种方式对插件进行线程和分阶段、管理其存储、在控制面板中的存在和位置等,所有这些都是非常酷的事情。您可以用大约六行 C 代码编写一个完全有效的插件。所以一切都很好。

不过现在,我将目光转向开发人员打开 CoCoa 窗口时可能需要的内容(如果他们需要比我们可以为他们生成的界面更复杂的界面)。我发现我对 CoCoa 的内部工作原理了解不够,并且我花了很长时间才找到任何地方解决了这个特定问题,因为 XCode 通常向您隐藏了此类实现细节。所以(最后,抱歉)我的问题是:

对于想要打开 CoCoa 窗口的插件,我需要向他们提供什么? CoCoa 服务和资源是否有根句柄?或者他们可以直接链接到他们需要链接的任何内容并打开一个窗口吗?

目前,该插件仅接收指向非常特定的图像数据类型的指针。它们与操作系统没有任何关系。如果可能的话,我想向他们提供他们需要的句柄,以便打开 CoCoa 窗口并让 OSX 以正常方式处理该窗口,无论是什么。或者,如果他们不需要任何东西,我想要一个明确的答案。如果能提供该答案的引用就太好了,这样我就可以通过任何方式了解它。

感谢您提供任何见解。

最佳答案

你什么都不需要。他们必须链接 Cocoa 框架并调用 NSWindow 上的方法。系统会自动处理这些繁重的工作。

编辑:

如何使用模态窗口:

NSWindow *theWindow; // create this in code, get it from a variable, or load it from a nib
NSInteger result = [[NSApplication sharedApplication] runModalForWindow:theWindow];
if(result == 0) {
// success, process input from window
} else if(result == NSRunStoppedResponse) {
// stopped with -stopModal instead of stopModalWithCode:. Possibly success
} else if(result == NSRunAbortedResponse) {
// stopped with -abortModal, probably an error
}


//This method is the action for a button on the window
- (IBAction)closeModalWindow:(id)sender {
[[sender window] orderOut:nil];
[[NSApplication sharedApplication] stopModalWithCode:0]; // The 0 will become the result of the runModalForWindow: method. You can use anything else instead
}

关于cocoa - .so 运行时可链接库作为插件; cocoa 能力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5274305/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com