我是Objective-C和Cocoa编程的新手(来自几年前在其他平台上进行C / C ++开发的背景)。我正在编写一个应用程序,以定期下载远程数据(即每X秒),解析它,将其排序/过滤到NSArray,并在NSTableView中显示/更新所述数据。在阅读了几本书之后,大量的Apple OS X参考资料和实验我已经设法实现了所有内容(远程数据下载,解析/过滤逻辑,内存存储等),除了用数据实际更新NSTableView 。
我不确定我是否只是遗漏了一些明显的东西,或者我的应用程序应该如何按照MVC概念进行布局,或者Interface Builder缺少实际的代码生成是不是我习惯的,但我似乎无法确定如何以编程方式访问/操作在Interface Builder中创建的NSTableView。
我尝试(在Interface Builder中)拖动我的基于NSArray的对象的NSObject实例,然后我可以连接我的NSTableView的Outlet / datasource,但是这会导致我的基于NSArray的对象的另一个实例(不连接) NSTableView到我现有的,以编程方式声明和实例化的对象)。同样,我想以编程方式设置我的NSTableView的数据源,但是我无法确定如何以编程方式引用存储在.xib / .nib文件中的NSTableView对象而不是通过Tag(我无法使用它)在Interface Builder中设置我的NSTableView的Tag值之后,确定从哪个对象调用viewWithTag:
方法。
非常感谢任何建议,建议或指导。这感觉就像其中一个非常简单的东西(一旦我在它面前工作,它会更有意义),但我似乎无法得到一个起点/示例工作。
答案 0 :(得分:2)
您需要将表的控制器类中的实例变量附加到接口构建器中的表。在你的班级中声明一个表格如下:
IBOutlet NSTableView* myTable;
...
@property (nonatomic, retain) IBOutlet NSTableView* myTable;
一定要合成它。
在界面构建器的信息窗口的连接选项卡中,将控制器的新插座连接到您的桌面。然后,当您从XIB加载视图时,将连接此插座。
希望有所帮助。