2011-12-21 46 views
2

首先,我没有太多的Mac桌面编程经验。我只在iOS应用上工作。在Mac上显示UIView

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

据我所知桌面应用程序使用NSView。有没有办法在NSView内显示UIView?

编辑:有什么办法可以将UIView转换为NSView

EDIT2:有什么方法可以为Interface Builder编写插件/扩展?编辑3:我试图建立一个应用程序,使某些iOS应用程序(演示应用程序)的开发更容易。例如,在滚动视图中显示多个视图的应用程序,每个视图都有一些动画图形元素和一些使按钮弹出的按钮。这类应用程序很容易开发但繁琐。我想制作一个工具来帮助我更快地构建这样的应用程序。

谢谢。

+0

有没有什么不能写一个iOS应用程序和设备(或模拟器)上运行它的理由? – 2011-12-21 14:09:38

+0

那么这将是一个解决方案。但应用程序将更容易与鼠标/键盘/大屏幕一起使用。 – silviupop 2011-12-21 14:10:29

+1

在模拟器上运行它? – 2011-12-21 14:12:22

回答

2

考虑到您正在尝试构建的应用程序的描述,我可能会建议您直接编写XIB XML,而不是试图在OS X上操作UIViews。您可以使用模拟器来布置控件,然后生成设备上层次结构的序列化表示(位置等)。你可以从该序列生成XML厦门国际银行,无论是在设备上还是从模拟器拉动序列化形式回来后,在桌面上。

3

NO。 UIView只适用于iPhone。在Mac上使用NSView。

+0

这并不能解决我的问题... – silviupop 2011-12-21 14:05:29

+2

其实没有任何解决方案,您的问题... – Saurabh 2011-12-21 14:06:29

+0

这两个操作系统和其框架是不同 – Saurabh 2011-12-21 14:06:45

1

不,没有。一个是Cocoa(Mac)框架的一部分,另一个是CocoaTouch(iOS)。

不知道你的意思一个UIView转换成的NSView

你到底想达到什么目的?也许还有其他方法可以实现你的目标。

7

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

转换UIViewNSView

没有办法到UIView “转换” 成NSView。由于无法在OS X(或iOS上的AppKit)上加载UIKit,因此无法实例化UIView,然后遍历其视图层次结构以实例化等效的NSView。当然,由于UIView的语义不同于NSView,目前还不清楚是否可能存在确定性映射。 NSView层次结构是基于视图的,而UIView层次结构使CoreAnimation图层更普遍地使用。 NSView源于NeXT AppKit框架。 AppKit展示了许多领域。 UIKit是一个全新的开始,“修复”AppKit中的许多遗留问题(当然,介绍它自己的未来“遗留”问题)。

可以有可能解析XIB,实例大致相当于NSViews那里有一个有意义的映射从UIViewNSView。自UIViews将完全关闭该表在此方案中,而不会有任何方式(容易)匹配的外观和感觉,而无需编写自定义NSViews每个UIView(ALA变色龙项目)。

IB插件

Interface Builder中3都suppert一个插件架构。使用Xcode 4,Interface Builder不再支持第三方插件。抱歉。

编辑

不幸的是,我不相信变色龙可以从XIBs加载的意见,所以你可能要有助于项目,如果要加载厦门国际银行的观点,而不是在代码中实例化他们......作为阿什利指出,你可能会潜入一个非常深兔子洞。