2012-06-25 68 views
1

我试图将一个标签(NSTextField)绑定到一个类的属性。在Interface Builder中我绑定标签的价值文件的所有者型号关键路径 = self.aString绑定标签到类的属性

  • 文件的所有者是NSViewController的子类与ASTRING定义为:@property (nonatomic, strong) NSString *aString;

  • 标签放置一个查看基于NSTableView的通过与管理的结合充满在运行时内对象上下文。

当我打电话在类的实现[self setAString:@"..."][self setValue:@"..." forKey:@"aString"],没有在表视图变化。但是,如果标签放置在视图内,它就可以工作。为什么?

+0

嗨,任何更新? – Vervious

回答

0

我解决了子类化NSTableCellView添加到它的NSString属性。然后我将标签的值绑定到表格单元格视图,并将属性的名称作为关键字。

-1

你可能没有直接访问它,当它在tableview中。尝试存储对tableview的引用,然后调用标签。所以如果你的表有一个名为t的引用,将标签连接到表,然后: t.labelName.text = @"string"尽管如果它在表格中的单元格内,你可能需要使用cellForRowAtIndexPath并引用子类别单元格内的标签。如果你不知道如何做到这一点,我可以发布一些代码。

0

这是基于视图的表视图的限制,并且从我所知道的唯一方法就是将TableView.delegate设置为File's Owner(或者其他对象,如果您尝试绑定到该视图)。

(我希望有一个更好的答案来解释为什么,因为我不知道为什么是这种情况)

蛋糕的回答是一个很好的解决方法。

+0

将代理设置为文件的所有者会导致错误:*** - [__ NSArrayM objectAtIndex:]:索引0超出空数组的界限 – user1471997

+0

我决定调高您的答案,因为看起来这个人不会回来。 – Dustin

+0

@ user1471997我在回顾一些旧的答案,并再次发现这个问题。你有没有解决这个问题? (我可能为时已晚,但是出现错误的地方是什么?你能用整个堆栈更新你的问题吗?) – Vervious