[英]How to partially disable resize properties of NSWindow?
在我的一個 NSWindow(如上圖所示)中,我想禁用拆分 window 屬性,即“將 Window 平鋪到屏幕左側”和“將 ZC89686A387D2B12B3C729CE35A0BCB5B 平鋪到屏幕右側”。
我現有的 Window Controller 代碼如下:
class VideoWindowController: NSWindowController, NSWindowDelegate {
override func windowDidLoad() {
super.windowDidLoad()
// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
self.window?.titlebarAppearsTransparent = false
self.window?.backgroundColor = NSColor.init(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 1.0)
self.window?.styleMask = NSWindow.StyleMask(rawValue: NSWindow.StyleMask.resizable.rawValue | NSWindow.StyleMask.titled.rawValue | NSWindow.StyleMask.closable.rawValue | NSWindow.StyleMask.miniaturizable.rawValue)
}
@objc func setNonResizableStyle() {
self.window?.titlebarAppearsTransparent = false
self.window?.styleMask = NSWindow.StyleMask(rawValue: NSWindow.StyleMask.titled.rawValue | NSWindow.StyleMask.miniaturizable.rawValue)
self.window?.level = .floating
}
@objc func setResizableStyle() {
self.window?.titlebarAppearsTransparent = false
self.window?.styleMask = NSWindow.StyleMask(rawValue: NSWindow.StyleMask.resizable.rawValue | NSWindow.StyleMask.titled.rawValue | NSWindow.StyleMask.closable.rawValue | NSWindow.StyleMask.miniaturizable.rawValue)
self.window?.level = .normal
}
}
您必須更改NSWindow
object 的collectionBehavior
以禁用某些拆分 window 功能:
window?.collectionBehavior = [.fullScreenDisallowsTiling]
更多信息可以在這里找到: https://developer.apple.com/documentation/appkit/nswindow/collectionbehavior
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.