NSTableView 绑定到 NSArrayController

Posted

技术标签:

【中文标题】NSTableView 绑定到 NSArrayController【英文标题】:NSTableView bound to NSArrayController 【发布时间】:2010-04-23 14:43:19 【问题描述】:

在 Interface Builder 中,我有一个 NSTableView,其中两列绑定到一个普通的 NSArrayController。 NSArrayController 将其内容数组绑定到我的应用程序委托中的 NSMutableArray。我使用了更多的绑定来通过绑定设置行的添加和删除(魔术!)。

我现在遇到的问题是我想获取当前选择的 NSTableView 行并使用它的索引来查找存储在我的 NSArrayControllers 关联数组中的对象。我遇到的问题是尝试访问 NSTableView。

在我的应用程序委托中,使用以下代码将导致我的应用程序崩溃:

NSLog(@"%@", [timersTableView selectedRow]);

同样,这也会导致我的应用程序崩溃:

NSLog(@"%@", [timersController selectionIndex]);

鉴于上述代码的简单性,我一定是做错了什么?

【问题讨论】:

【参考方案1】:

-selectedRow 和 -selectionIndex 都返回一个 NSInteger,它只是一个原生宽度的整数,而 %@ 格式字符串说明符用于打印对象。如果要打印 NSInteger,请将其替换为 %ld。

【讨论】:

你当然是完全正确的。多么愚蠢的错误!从好的方面来说,我阅读了 %@ 格式字符串说明符的操作方式。

以上是关于NSTableView 绑定到 NSArrayController的主要内容,如果未能解决你的问题,请参考以下文章

将 NSTableView 绑定到两个不同数据源的最佳方法?

NSArrayController NSTableView 核心数据绑定整数

(OS X) 以编程方式绑定的 NSTableView 不显示值

当项目更改时,CoreData 绑定的 NSTableView 会失去输入焦点,但前提是已排序

NSTableView 绑定和 tableViewSelectionDidChange

保持 NSScrollView 固定