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/

相关文章:

macos - 在 El Capitan 中以编程方式打开某些 OS X 首选项面板

objective-c - 将不同种类的项目共享到 NSSharingServicePicker?

iphone - 动画 UIView 增长/缩小

ios - 如何使用 swift 显示和/或隐藏 subview

ios - 目前不允许购买 iTunes 沙盒

iphone - 在主uiview的 subview 上获取点击事件

ios - 原生 zlib inflate/deflate for swift3 on iOS

php - 发送 POST 到 php 服务器不工作

swift - 如何确定事件文本字段

Swift,是否可以有一个 IBInspectable block ?