【问题标题】:Expand an NSCell when multiples lines多行时展开一个 NSCell
【发布时间】:2012-04-03 10:51:47
【问题描述】:
我希望在 10.7 中具有与 Console.app 相同的行为。
- 被截断的行带有一个显示三角形
- 单击三角形/双击线/按“右阵列”展开 NSCell 并显示整个文本
我使用的是 NSOutlineView 方式,但“Accessibility Inspector”显示它不是大纲视图,而是 NSCell。
一个想法可能是捕获行数,并在特定事件(单击/双击/左数组)上修改当前 NSCell 的高度。
如何在我的单元格中添加这样的三角形?
我怎样才能捕捉到这样的事件?
【问题讨论】:
标签:
objective-c
cocoa
nstableview
nscell
【解决方案1】:
控制台使用基于视图的NSTableView。每个单元格都是NSTableCellView 的自定义子类,这使它能够包含披露按钮。
显示按钮可能只是在表格视图上调用noteHeightOfRowsWithIndexesChanged:,而后者又在表格视图的委托上调用tableView:heightOfRow:。
然后,tableView:heightOfRow: 委托方法的实现将为展开的行返回更大的高度。
【讨论】:
-
感谢您的回答,我开始继承 NSTableCellView,但我无法成功显示 NSButton 和我现有的文本,这些文本实际上是通过绑定出现的。虽然这不是问题,但你能告诉我一些关于 NSTableCellView 子类化的示例代码吗?我看过 link 和 link 但代码对我来说不够明确......