1

我正在尝试将标签(NSTextField)绑定到类的属性。在Interface Builder中,我使用Model Key Path = self.aString将标签的绑定到文件的所有者

  • File's Owner是 NSViewController 的子类,其中aString定义为:@property (nonatomic, strong) NSString *aString;

  • 标签放置在基于视图的 NSTableView中,该视图在运行时通过与托管对象上下文的绑定填充。

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

4

3 回答 3

0

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

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

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

于 2012-06-25T15:36:23.990 回答
0

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

于 2012-08-07T06:41:35.537 回答
-1

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

于 2012-06-25T14:30:55.957 回答