这实际上是How to show calculated values in NSTableView?
的扩展问题:
我有一个NSDocument类,它包含两个属性:text
(NSString)和phrases
(NSObjects的NSMutableArray,其中包含NSString)。
在Doc NIB文件中,我有一个带有两列的TextView(显示短语)。第一列绑定到ArrayController并显示NSString。这没问题。
我想计算text
中出现的NSString的数量,并在第二列中显示。
我尝试了什么:
在我的NSObject中定义一个指向TextView的静态var。加载NIB后,它会将此静态var设置为包含text
字符串的TextView。
如果我打开一个窗口,这可以正常工作。但是如果我尝试打开多个窗口,静态var将使用TextView的新实例(来自其他窗口)进行更新。显然这会打破一切。
问题:
如何从每个NSObject访问text
?换句话说,对象图是NSDocument - (包含一个) - > NSMutableArray - (包含多个) - > NSObject,那么如何从NSObject获取NSDocument?
答案 0 :(得分:1)
使用字典数组:
而不是字符串数组 NSDictionary *entry = [NSDictionary dictionaryWithObjectsAndKeys:
thePhrase, @"phrase",
theCount, @"count",
nil];
[theArray addObject:entry];
绑定到arrangedObjects.phrase
和arrangedObjects.count
。
或者,您可以创建一个Phrase
类,其中包含短语,对文档的引用以及计算计数的代码。