在OS X 10.11 El Capitan上,NSTableView的默认标题高度已经增长。
当我在OS X El Capitan 10.11(GM)和Xcode 7.0(稳定版)上构建我的NSTableView时,即使在之前的操作系统版本上,桌面标题高度仍将使用El Capitan的标题高度修复,因此表格标题上方有一个奇怪的不需要的空间(参见下面的截图。)
图。 1 El Capitan上的表格标题(正确)
图。 2 Yosemite上的表格标题(不正确)
这当然是不可取的。
我该如何避免这种情况?是否有人面临同样的问题?我甚至找不到任何提到这件事的文章。
我使用捆绑到Xcode 7.0并启用了自动布局的普通Interface Builder来放置我的NSTableView。
我刚刚确认此问题已在Xcode 7.2 + OS X 10.11.2上修复。现在,您可以毫不费力地在Interface Builder上修改NSTableView。
答案 0 :(得分:2)
这绝对是苹果框架中的一个错误。它只发生在视图自动布局时。 我设法通过子类化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中的标题。