objective-c – 如何在基于视图的NSTableView或NSOutlineView中自动调整列

objective-c – 如何在基于视图的NSTableView或NSOutlineView中自动调整列,第1张

概述支持基于视图的表的列自动调整大小请求需要什么?在这一点上,文档真的不清楚,似乎与基于单元格的观点有关. 这是为了处理列分隔符的双击. 我可以通过实现tableView:sizeToFitWidthOfColumn来实现这项工作:对于NSTableView和outlineView:sizeToFitWidthOfColumn:对于NSOutlineView,但文档说这只是大表所必需的.有没有更正确的 支持基于视图的表的列自动调整大小请求需要什么?在这一点上,文档真的不清楚,似乎与基于单元格的观点有关.

这是为了处理列分隔符的双击.

我可以通过实现tableVIEw:sizetoFitWIDthOfColumn来实现这项工作:对于NStableVIEw和outlineVIEw:sizetoFitWIDthOfColumn:对于NSOutlineVIEw,但文档说这只是大表所必需的.有没有更正确的方法来做到这一点?

- (CGfloat)tableVIEw:(NStableVIEw*)tableVIEw sizetoFitWIDthOfColumn:(NSInteger)column {  NSUInteger n = [self numberOfRowsIntableVIEw:tableVIEw];  CGfloat w = 30;  NStableColumn* col = [[tableVIEw tableColumns] objectAtIndex:column];  for (int i=0; i<MIN(n,100); ++i) {    NSVIEw* vw = [self tableVIEw:tableVIEw vIEwFortableColumn:col row:i];    w = MAX(w,[vw frame].size.wIDth);  }  return w;}
解决方法 我想知道同样的事情.如果你在程序集中进行一些挖掘,你会发现负责列自动调整功能的框架方法是 – [NStableVIEw _sizetoFitWIDthOfColumn:].不幸的是,它做的第一件事是检查表视图是否是基于视图的表视图,如果是这样,它只是跳转到方法的末尾并且什么也不做.

基于视图的表视图在2009年的OS X 10.6中引入.唉,五年之后,它看起来这个功能仍然没有重新实现.

总结

以上是内存溢出为你收集整理的objective-c – 如何在基于视图的NSTableView或NSOutlineView中自动调整列全部内容,希望文章能够帮你解决objective-c – 如何在基于视图的NSTableView或NSOutlineView中自动调整列所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1010100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存