在iOS开发中与之对应的是UIWindow,我们操作的主要是UIView和UIViewController。对window的操作不多,而在macOS中,NSWindow用于设置窗口的外观和行为。
styleMask Link to heading
用于设置窗口样式,在window初始化时可以设置。
常用配置 Link to heading
1.NSWindowStyleMaskTitled: 窗口有标题栏。 2.NSWindowStyleMaskClosable: 窗口可以关闭。 3.NSWindowStyleMaskResizable: 窗口可以调整大小。 4.NSWindowStyleMaskMiniaturizable: 窗口可以最小化。 5.NSWindowStyleMaskFullScreen: 窗口可以全屏显示。 6.NSWindowStyleMaskBorderless: 窗口没有边框。 7.NSWindowStyleMaskUtilityWindow: 窗口作为工具窗口显示。 8.NSWindowStyleMaskHUDWindow: 窗口作为HUD(Head-Up Display)风格显示。
BackingStoreType Link to heading
1.NSBackingStoreRetained: 使用可保留的后备存储。窗口内容被绘制到内存中,并在需要时缓存以提高性能。这是默认值,适用于大多数情况。 2.NSBackingStoreNonretained: 使用非保留的后备存储。窗口内容被绘制到内存中,但不会被缓存,而是每次显示时都重新绘制。这可能会导致性能降低,但在某些情况下可能是必要的,例如动态内容的窗口。 3.NSBackingStoreBuffered: 使用缓冲的后备存储。窗口内容被绘制到图形处理单元的缓冲区中,并根据需要复制到屏幕上。这通常用于OpenGL或其他图形处理技术,以便更有效地管理窗口内容。
初始化 Link to heading
let window = NSWindow(contentRect: NSRect(x: 0, y: 0, width: 800, height: 600),
styleMask: [.titled, .closable, .miniaturizable, .resizable],
backing: .buffered,
defer: false) //是否延迟执行
// 设置窗口标题
window.title = "My App"