Swift 如何获得NSToolbar高度?
我如何知道NSToolbar的高度?当我将NSView放置在打开NSToolbar的NSWindow中时,如何设置NSView的高度,使其可以占据窗口中的所有可用高度?根据我的经验,您不需要考虑工具栏高度;运行时会自动为您执行此操作。只需像平常一样添加视图。从编程角度看,它如下所示:Swift 如何获得NSToolbar高度?,swift,macos,nstoolbar,Swift,Macos,Nstoolbar,我如何知道NSToolbar的高度?当我将NSView放置在打开NSToolbar的NSWindow中时,如何设置NSView的高度,使其可以占据窗口中的所有可用高度?根据我的经验,您不需要考虑工具栏高度;运行时会自动为您执行此操作。只需像平常一样添加视图。从编程角度看,它如下所示: let view = CustomView( frame:NSMakeRect(0, 0, _wndW, _wndH) ) window.contentView!.addSubview (view)
let view = CustomView( frame:NSMakeRect(0, 0, _wndW, _wndH) )
window.contentView!.addSubview (view)
如果设置/替换窗口的
contentView
,则该窗口将自动且必要地将其调整为正确的大小(或者,如果视图的大小受到比NSLayoutConstraint.priority.WindowsIzeStatyPut更高的优先级约束,则调整其自身大小)
如果要将视图放在提供的内容视图中,则内容视图的边界
指示将放置视图的矩形
如果您只需要窗口的内容矩形,可以使用macOS 11或更高版本中的window.contentRect(forFrameRect:window.frame)
,在启用“全尺寸内容视图”设置的情况下,可以使用safeAreaInsets
来确定工具栏的高度:
guard let contentView = window?.contentView else {
return
}
let toolbarHeight = contentView.safeAreaInsets.top
谢谢我使用window.setFrame()来更改窗口大小,而我应该使用window.setContentSize()。