NSTableView的绑定值,但工具提示也已设置

时间:2010-06-02 09:56:48

标签: objective-c interface-builder cocoa-bindings nstableview

我在 Interface Builder 中设置NSTableView,以便从NSArray填充。数组的每个值表示表中的一行。该值绑定正确,但作为副作用,表格单元格的工具提示设置为绑定对象的字符串表示。

就我而言,NSArray包含NSDictionary个对象,工具提示看起来可能是该词典的[... description]输出。非常难看......

我根本不想设置工具提示。我有其他表绑定了纯NSString值,他们没有自动设置工具提示。是否有一些Interface Builder魔术正在进行?我试着从一个空白项目开始 - 同样的问题。

我应该补充一点,表格单元格是NSTextFieldCell的自定义实现,它使用NSButtonCell实例在表格中绘制图像和标签。从作为值绑定的字典中检索值。

为什么在仅绑定“value”属性时设置了工具提示?

提前致谢!

1 个答案:

答案 0 :(得分:4)

固定。这是发生的事情:

  • 我使用自定义NSTextFieldCell绘制表格单元格
  • 该值绑定了一个NSDictionary实例
  • 将实际单元格值设置为字典的字符串表示形式。它不可见,因为我使用了自定义单元格。

NSTableView可以绘制一个特殊的工具提示窗口,并显示单元格的内容,如果它不适合单元格。

  • 对于我的自定义单元格。

禁用此功能可以通过实现NSTableViewDelegate方法来完成:

- (BOOL)tableView:(NSTableView *)tableView 
    shouldShowCellExpansionForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {

 return NO;

}