gpt4 book ai didi

cocoa - 使用基于 View 的 NSOutline (Sourcelist) 的奇怪行为

转载 作者:行者123 更新时间:2023-12-03 16:02:06 25 4
gpt4 key购买 nike

我的应用程序中有一个(Lion 中的新功能)基于 View 的 NSOutlineView 作为侧边栏 SourceList,使用 CoreData + NSTreeController + Bindings + NSOutlineView 和一个对象作为 NSOutlineViewDelegate。

我在大纲 View 委托(delegate)中使用这些委托(delegate)方法:

- (BOOL)outlineView:(NSOutlineView *)outlineView isGroupItem:(id)item 在我的例子中,当(核心数据)父关系为零时,项目是组。

- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item 返回标题单元格 View (组)或数据单元格 View (图标 + 文本) )。

我将大纲 View 的大小样式(在 XCode 的 Interface Builder 中)设置为“侧边栏系统默认值”,以便当用户在系统首选项中更改单元 View 时,单元 View 会更改其大小。

它工作正常......但有一些问题:

enter image description here

  • 第一个单元格 View 是一个组单元格(标题单元格),当展开-折叠时,该单元格 View 的文本字段上下移动。仅发生在第一个。

  • 标题单元格中的文本字段会更改其大小(当更改系统首选项中的大小时),但我希望标题单元格大小保持固定,就像 (Lion) Finder、Mail... 一样。

  • 标题单元格中文本字段的字符串值不显示为大写。

  • 我在数据单元格的 ImageView 中用作图标的图像显示为透明(具有 0.5 alpha 值或类似值)。

有什么帮助吗?提前致谢

已解决:

  • 对于第一个单元 View 展开/折叠时的移动,请使用方法setFloatsGroupRows:NO和outlineview(感谢Anton!)

  • 如果您希望组单元格的字体固定大小(即使用户在系统首选项中更改它),请在 IB 中取消标题单元格与其表格单元格 View 的绑定(bind)。

  • 在标题单元格中使用 valueTransformer(将字符串转换为大写),字符串将显示为大写。您也可以使用 nsoutlineview 数据源方法-outlineView:objectValueForTableColumn:byItem:...

  • 来完成此操作
  • 最后图标是半透明的,因为未启用。在图像单元格绑定(bind)的值或值路径(取决于您使用的路径)中取消选中“有条件地设置启用”

最佳答案

为大纲 View 设置 setFloatsGroupRows:NO 必须解决展开/折叠时第一个组项目上下移动的问题。

关于cocoa - 使用基于 View 的 NSOutline (Sourcelist) 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6814620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com