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

发布于 2024-09-03 11:43:55 字数 563 浏览 13 评论 0原文

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

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

我根本不想设置工具提示。我有其他表绑定了普通的 NSString 值,并且它们没有自动设置工具提示。 Interface Builder 有什么魔力吗?我尝试从一个空白项目开始 - 同样的问题。

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

为什么我只绑定“value”属性就设置了工具提示?

提前致谢!

I've set up an NSTableView in Interface Builder to be populated from an NSArray. Each value of the array represents one row in the table. The value is bound correctly, but as a side effect, the table cell's tooltip is set to the string representation of the bound object.

In my case, the NSArray contains NSDictionary objects and the tooltip looks like it could be the [... description] output of that dictionary. Very ugly...

I don't want the tooltip to be set at all. I have other tables that have plain NSString values bound to them and they don't have a tooltip set automatically. Is there some Interface Builder magic going on? I tried to start with a blank project - same problem.

I should add that the table cell is a custom implementation of NSTextFieldCell that uses an NSButtonCell instance to draw an image and a label into the table. The values are retrieved from the dictionary bound as value.

Why is the tooltip set when I only bind the "value" attribute?

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

海夕 2024-09-10 11:43:55

固定的。发生的事情是这样的:

  • 我使用自定义 NSTextFieldCell 来绘制表格单元格
  • 值被绑定到 NSDictionary 实例
  • 实际单元格值被神奇地设置为字典的字符串表示形式。它不可见,因为我使用了自定义单元格。

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

  • 对于我的定制单元来说就是这种情况。

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

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

 return NO;

}

Fixed. Here's what happened:

  • I used a custom NSTextFieldCell to draw the table cell
  • The value was bound do an NSDictionary instance
  • The actual cell value was magiaclly set to the string representation of the dictionary. It was not visible, because I used a custom cell.

NSTableView can draw a special tooltip-like window and show the cell's contents if that does not fit into the cell.

  • For my custom cell that was the case.

Disabling this can be done by implementing the NSTableViewDelegate method:

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

 return NO;

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文