gpt4 book ai didi

objective-c - NSTableColumn 大小以适合内容

转载 作者:太空狗 更新时间:2023-10-30 03:22:59 26 4
gpt4 key购买 nike

我正在针对 Mac OS X 10.6 (Snow Leopard) 进行开发。当我在我的 NSTableView 的两个列标题之间双击时,左侧的列会自动调整大小,正如您所期望的那样。

我也想在上下文菜单中提供此功能,但似乎没有可公开访问的功能来执行此操作。我用 Google 搜索过,并查看了 NSTableView、NSTableHeaderView 和 NSTableColumn 的文档,但一无所获。我很难相信,当他们显然已经编写了代码来做这些事情时,他们不会公开一些如此有用的东西。

我看到了 -[NSTableColumn sizeToFit] 方法,但它只考虑了 header 的大小。我也愿意将双击事件发送到 NSTableHeaderView,但也不知道该怎么做。

更新 - 我意识到重要的是要提到我有一个 NSArrayController(子类)为我的表提供数据,所以我没有 NSTableViewDataSource可以调用 -[tableView: objectValueForTableColumn: row:]。这就是问题的症结所在:每一列都绑定(bind)到数组 Controller 的键路径,这就是它获取数据的方式,因此它无法循环遍历其内容。

最佳答案

您可以通过从列中获取单元格来获取每个单元格的长度。

NSCell myCell = [column dataCellForRow:i];

然后获取单元格的宽度。

width = [myCell cellSize].width;

之后,您可以将单元格的宽度设置为列的宽度。

[column setMinWidth:width];
[column setWidth:width];

关于objective-c - NSTableColumn 大小以适合内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4674163/

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