Objective-c是可学习的;可可是可以学习的;我发现Interface Builder及其后代Xcode 4是完全不可思议的!没有文本(作为C或Obj-c源代码的等价物)来引用。所有的描述都是“拖到这里;连接那个; Ctl拖到那里”,我仍然迷路....
我一直在尝试通过关键技术的各种Apple示例。我一直在Apple开发人员的示例NSTableViewBinding中查看Cocoa Bindings和示例文件。为了尝试理解它,我一直试图复制它。
现在参考文件MyWindowController.m中awakeFromNib
方法顶部的注释如何在Xcode 4中建立这些连接???
对象库或源代码中都不存在名为Object
的{{1}};它来自哪里?
右边的TableArray
;这些是如何创建的?
Referencing Bindings
方法顶部提到的各种键/值对;这些是如何创建的?
我知道Xcode 4应该是一个更直接的改进,但我对IB的替代感到非常困惑。网上的所有IB资料都是指完全不同的早期版本,所以我找不到太多的帮助。
后续
我确实在Xcode 4中找到了Cocoa Bindings。我能够在几行代码中复制示例程序的功能。
以下是我需要花费一些时间来解决的问题:
awakeFromNib
是TableArray
从对象库拖到XIB中的对象列表,然后重命名。 (Apple注意:右键单击HUD视图中的基础对象类很好)
Stephen Poletto's回答是连接所有内容的宝贵指南。
我没有立即明白连接界面如何在右键单击HUD中工作:
存储阵列Array Controller Object
隐含在myContentArray
单击并从TableArray的HUD拖动到.h文件中的AppDelegate定义,以在那里创建连接。
答案 0 :(得分:13)
建立awakeFromNib注释中描述的绑定:
连接检查器的引用绑定部分显示已通过所选控制器建立的所有绑定。因此,如果您选择TableArray并导航到连接检查器,您现在将看到“arrangeObjects.firstName” - >值,表列 - 名字。这向您展示了您刚刚建立的绑定。
在深入研究像Cocoa Bindings这样的高级主题之前,使用Interface Builder可能是值得的。使用它来创建IBOutlet和IBAction连接,本地在IB内部以及IB和源代码之间。习惯使用检查器来修改UI对象的属性等。一旦您对IB的一般工作流程感到满意,处理绑定将更容易。 Here's帮助指南。
答案 1 :(得分:1)
就基础概念而言,Xcode 4的现在集成的界面构建器部分与旧的Interface Builder没有什么不同。
下载仍在Apple网站上提供的XCode 3,并按照在线提供的教程进行操作。
或者在SO中比我更有帮助的人可能会使用Xcode 4编写一个很好的教程......
那就是说,让我试着向你解释一些事情。 (但我真的建议你在这一点上使用Xcode 3.我不是说Xcode 3本质上更好;我只是说Xcode 3有更多的教程,这样你就可以更容易地得到这个概念,然后可以与Xcode 4一起使用。)
nib / xib文件中包含已存档的对象。在Interface Builder中(无论是独立的还是统一到Xcode中)通过创建活动对象来创建nib / xib文件,然后在保存文件时将其冻结到存档对象中。 TableArray
是在nib文件中创建的实例。您可以将通用对象从对象库拖动到nib,并将其类更改为您想要的任何类。这就是对象的创建方式。
您不创建引用绑定。绑定有一个方向,从对象A到另一个对象B.您在A侧设置绑定(在本例中为NSTableColumn
)。引用绑定只是在B侧显示这些信息。因此,选择IB中的表视图列并在那里设置绑定。
这是在NSTableColumn
的绑定窗格上完成的。