ios - 在 Mac 上显示 UIView

标签 ios macos uiview desktop nsview

首先,我在 Mac 桌面编程方面没有太多经验。我只开发 iOS 应用。

现在我想制作一个桌面应用程序来帮助我开发 iOS 应用程序。为此,我需要在桌面上显示一个 UIView(从 xib 加载),类似于界面生成器的工作方式。

据我所知,桌面应用程序使用 NSView。有什么方法可以在 NSView 中显示 UIView 吗?

编辑:有没有办法将 UIView 转换为 NSView

EDIT2:有什么方法可以为 Interface Builder 编写插件/扩展吗?

EDIT3:我正在尝试构建一个应用程序,使某些 iOS 应用程序(演示应用程序)的开发更加容易。例如,一个在 ScrollView 中显示多个 View 的应用程序,每个 View 都有一些动画图形元素和一些使弹出窗口出现的按钮。这种应用程序很容易开发但很乏味。我想制作一个工具来帮助我更快地构建此类应用程序。

谢谢。

最佳答案

UIKit(iOS UI 框架,包括 UIView)不能在 OS X(Mac 桌面操作系统)上运行。为创建 OS X 的第 3 方 UIKit 端口已经做出了多项努力。其中,Chameleon可能是最先进的。它仍然只实现了大约 60% 的 UIKit(根据项目页面),但已用于交付应用程序。它是由 Twitterific 的制造商开发的,用于将他们的 iOS 应用程序移植到 OS X,我相信它仍然是该产品在桌面上的基础。

UIView 转换为 NSView

无法将 UIView“转换”为 NSView。由于您无法在 OS X(或 iOS 上的 AppKit)上加载 UIKit,因此无法实例化 UIView,然后遍历其 View 层次结构以实例化等效的 NSView。当然,由于 UIView 的语义与 NSView 不同,是否存在确定性映射尚不清楚。 NSView 层次结构是基于 View 的,而 UIView 层次结构更普遍地使用了 CoreAnimation 层。 NSView 起源于 NeXT AppKit 框架。 AppKit 在许多方面显示出它的年龄。 UIKit 是一个全新的开始,“修复”了 AppKit 中的许多这些遗留问题(当然,引入了它自己 future 的“遗留”问题)。

可能可以解析 XIB,实例化大致等效的 NSViews,其中存在从 UIViewNSView 的有意义的映射。自定义 UIViews 将完全脱离此方案,并且如果不为每个 编写自定义 NSViews ,将无法(轻松)匹配外观>UIView(变色龙项目)。

IB 插件

Interface Builder 3 确实支持插件架构。在 Xcode 4 中,Interface Builder 不再支持第三方插件。对不起。

编辑

不幸的是,我不相信 Chameleon 可以从 XIB 加载 View ,所以如果你想加载 XIB View 而不是在代码中实例化它们,你可能必须为项目做出贡献......正如 Ashley 指出的那样,你可能是潜入一个非常深的兔子洞。

关于ios - 在 Mac 上显示 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8590940/

相关文章:

ios - 状态栏不在原来的位置

python - tempfile.mkdtemp() 在 osx 上的区别?

ios - 如何设置渐变角度和类型到 CAGradientLayer

iphone - 从 Xcode 3 到 Xcode 4 - 我应该注意的事情

ios - 显示没有 UIViewController 的 UIView

ios - 捕捉 UIView 内容重绘

ios - StompClientLib - 取消订阅 socketclient

ios - xcode:类不符合键值编码

ios - 如何根据URL区分不同类型的Web Services?

macos - Arduino IDE 未显示任何端口 macOS