如何在NSTableView中显示计算值?

问题描述:

我有一个NSTableView通过NSArrayController绑定到NSString的NSMutableArray。如何在NSTableView中显示计算值?

还有一个TextView在同一个窗口中。我想要做的是在NSTableView中显示每个NSString的出现次数。

我想到了一个办法做到这一点,但看起来不这样做的优雅的方式:

从NSString的继承和定义在执行预定义的对象(NSTextView),并返回一个搜索新方法发生的次数。

我猜测必须有更自然的方式来实现相同的结果?

编辑:

对不起,应该澄清。 NSSMutableArray是一个具有NSString属性的NSObject数组。我想我可以定义一个额外的方法(findAllOccurencesOfString:inString :),它将返回一个数字。但问题是我如何绑定到这个函数,并在该绑定如何传递一个var(指向textField的指针)?

+0

所以,你有一个文本视图,并且你想要一个表格视图,在文本视图中每个不同的单词都有一行,并且有一个单词出现次数的计数? – jrturton

+0

是的,这是正确的,但tableview中的单词不一定来自textview,用户在手动输入它们。 (顺便说一句,我已经添加了一个查找'findAllOccurencesIn:(NSString *)text'的方法,但我不知道如何引用它。只需放入'Model Key Path'似乎不起作用。 – rytis

对于表数据源中的任何对象,您都需要具有wordCount(只读)属性,因此您必须使用对象自己的字符串值在内部调用您的新方法,因为您无法传递参数在绑定中(除非它们已经改变,我还没有使用绑定一段时间,因为我一直专注于iOS)。然后将该属性绑定到表中的列。据推测,你不需要将指针传递给文本框,因为只有一个?

+0

woohoo !这工作。谢谢!!我在.m中声明了一个静态变量,它实现了我的数组对象。var指向textview并在文档类的awakefromnib中设置。现在我只需要弄清楚如何不断更新列表当用户正在编辑文本 – rytis

+0

虽然它似乎最初工作,但它似乎并没有真正的工作 - 它打破了,当我打开多个窗口。这是为什么:我定义了一个类方法,设置一个指向一个文本视图时,节点加载。没关系,如果只有一个窗口,下一个窗口将完全相同,因此覆盖第一个窗口设置的内容。返回到第一个窗口和应用程序崩溃(显然,现在看第二个窗口textview元素) – rytis

+0

I '开始一个新的问题与你的新问题。 – jrturton