gpt4 book ai didi

cocoa - NSTableView 标题高度与 OS X 10.11 的向后兼容性

转载 作者:行者123 更新时间:2023-12-03 16:09:31 26 4
gpt4 key购买 nike

背景:

在 OS X 10.11 El Capitan 上,NSTableView 的默认标题高度已增加。

问题:

当我在 OS X El Capitan 10.11 (GM) 和 Xcode 7.0(稳定版)上构建 NSTableView 时,即使在以前的操作系统版本上,表头高度也将与 El Capitan 的头高度固定,所以有一个奇怪的问题表格标题上方不需要的空间(请参见下面的屏幕截图。)

table header on El Capitan

图。 1 El Capitan 上的表格标题(正确)

table header on El Capitan

图。 2 优胜美地的表格标题(不正确)

这当然是一件不可取的事情。

问题:

如何避免这种情况?有人面临同样的问题吗?我什至找不到任何提到这一点的文章。

我使用捆绑到 Xcode 7.0 的普通 Interface Builder 放置我的 NSTableView,并启用了自动布局。

更新:

我刚刚确认此问题已在 Xcode 7.2 + OS X 10.11.2 上修复。现在您可以放心地在 Interface Builder 上修改 NSTableView 了。

最佳答案

这绝对是苹果框架中的一个错误。仅当 View 自动布局时才会发生。我设法通过子类化 NSTableHeaderView 来解决这个问题,如下所示:

class TGTableHeaderView: NSTableHeaderView {
override var frame: NSRect {
set {
super.frame = newValue
}
get {
var rv = super.frame
if #available(OSX 10.11, *) {} else {
// Correct in versions before El Capitan
rv.size.height = 17
}
return rv
}
}
}

然后将此子类设置到IB中的 header 。

关于cocoa - NSTableView 标题高度与 OS X 10.11 的向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32712561/

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