我想知道这里的Mac开发社区的人是否知道如何为Mac开发基于xml文件的UI。我们需要重新设计我们的软件,并将在UI部分的工作,有人建议有在xml文件为基础的UI部分,以便它将是动态的。我从未在Mac上尝试过这种方法,尽管我知道这在Java中是很熟悉的。
这个想法是定义所有的控制设置,按钮的高度,宽度,位置等。或者基于xml的文件中的整个布局,具有一个解析器,它将读取所有这些文件,然后形成UI。
有没有办法在Mac上做到这一点?有人知道是怎么回事吗?
发布于 2010-09-15 02:50:59
是的,已经做好了。Interface Builder是Cocoa世界中的标准UI构建器,它使用XIB文件,这是一个编码所有UI的XML文件。XIB文件和程序代码是非常松散耦合的,并且可以独立地更改XIB文件,而不需要重新编译。它曾经是一个非NIB文件,称为XML,但区别只是实现细节,我们不应该关心。
Objective-C和任何绑定到Cocoa的语言都知道如何读取XIB文件并实例化冻结在其中的UI。
如果你只是想要一个从代码中解耦出来的动态UI,自古以来它就是OS (和NeXTStep)的标准。事实上,在Cocoa世界中,通过显式编码来设置UI元素是非常罕见的。每个人,包括苹果自己,都在使用Interface Builder。这几天,世界终于开始追赶我们了:)
一个问题可能是,XML是苹果公司的私有东西,但是已经有一些实用程序可以处理XIB文件。苹果自己的ibtool就是一个例子;另一个例子是名为nib2objc的开源项目。它将XIB/NIB文件转储为等效的Objective-C代码,以满足那些看不懂构建UI代码的老定时器的需要。
附录:我应该再次强调,从Apple的角度来看,XIB文件是XML文件这一事实是实现细节,您通常不应该直接接触XML文件。Apple想要实现的是逻辑和UI的松散耦合,而使用XML只是一个细节。所以,你需要决定是否
你在问题中写的听起来像2。那么Interface Builder就是完美的匹配。但是,如果1是您想要的,则XIB文件不适合您。
https://stackoverflow.com/questions/3707831
复制相似问题