swift 如何获得NSSTYLE高度?

polkgigr  于 12个月前  发布在  Swift
关注(0)|答案(4)|浏览(132)

如何知道NSView的高度?当我将NSView放置在NSWindow中并打开NSView时,如何设置NSView的高度,使其可以占用窗口中所有可用的高度?

rdlzhqv9

rdlzhqv91#

在macOS 11或更高版本中,如果您启用了设置“全尺寸内容视图”,则可以使用safeAreaInsets来确定工具栏的高度:

guard let contentView = window?.contentView else {
    return
}

let toolbarHeight = contentView.safeAreaInsets.top

字符串

i86rm4rw

i86rm4rw2#

如果您设置/替换窗口的contentView,窗口将自动调整其大小到正确的大小(或者如果视图的大小受到比NSLayoutConstraint.Priority.windowSizeStayPut更高优先级的约束,则调整自身大小)。
如果您将视图放在提供的内容视图中,则内容视图的bounds指示将放置视图的矩形。
如果你只是想要窗口的内容矩形,你可以用window.contentRect(forFrameRect:window.frame)来得到。

eivgtgni

eivgtgni3#

根据我的经验,你不需要考虑工具栏的高度;运行时会自动为你做这件事。只要像平常一样添加视图就可以了。从编程上看,它看起来像这样:

let view = CustomView( frame:NSMakeRect(0, 0, _wndW, _wndH) )       
 window.contentView!.addSubview (view)

字符串

5vf7fwbs

5vf7fwbs4#

您可以用途:

let toolbarHeight = window.frame.height - (window.contentView?.bounds.height ?? .zero)

字符串

相关问题