将标签绑定到类'属性

时间:2012-06-25 13:54:18

标签: objective-c cocoa binding

我正在尝试将标签(NSTextField)绑定到类'属性。在 Interface Builder 中,我使用模型密钥路径 = self.aString将标签的绑定到文件的所有者

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

  • 标签位于运行时通过与托管对象上下文绑定填充的基于视图的NSTableView 内。

当我在类的实现中调用[self setAString:@"..."][self setValue:@"..." forKey:@"aString"]时,表视图中没有任何变化。但是,如果标签放在视图中,它就可以工作。为什么呢?

3 个答案:

答案 0 :(得分:0)

这是基于视图的表格视图的限制,据我所知,修复它的唯一方法是将TableView.delegate设置为File's Owner(或者如果您正在尝试其他对象)而是绑定到那个。)

(我希望有更好的答案来解释原因,因为我不知道为什么会这样)

Cake的答案是一个很好的解决方法。

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

当您在tableview中时,您可能无法直接访问它。尝试存储对tableview的引用,然后调用标签。因此,如果您的表具有名为t的引用,请将标签连接到表,然后: t.labelName.text = @"string"但是,如果它位于表格中的单元格内,则可能需要使用cellForRowAtIndexPath并引用子类化单元格内的标签。如果你不知道怎么做,我可以发布一些代码。