我有一个NSViewController具名的Hardness,不需要让用户调整其大小。当然,我可以在每次用户尝试时重新调整它的大小,但是有什么办法不让用户将窗口打开到全屏或拉伸窗口呢?
NSViewController
Hardness
编辑/更新: Xcode 10.2•Swift 5
NSWindow具有一个称为styleMask的属性,该属性使您可以控制用户可以使用哪种控件。如果不想让用户调整窗口大小,则必须使用mutating方法删除样式掩码.resizable remove(member: NSWindowStyleMask)。要再次启用它,您需要使用mutating方法insert(member: NSWindowStyleMask)。请注意,它还将禁用该窗口的全屏模式:
remove(member: NSWindowStyleMask)
insert(member: NSWindowStyleMask)
删除以禁用:
window.styleMask.remove(.resizable)
插入以启用
window.styleMask.insert(.resizable)
样品
import Cocoa class ViewController: NSViewController { @IBOutlet weak var closable: NSButton! @IBOutlet weak var miniaturizable: NSButton! @IBOutlet weak var resizable: NSButton! @IBOutlet weak var titled: NSButton! lazy var window: NSWindow! = self.view.window func remove(_ member: NSWindow.StyleMask) { window.styleMask.remove(member) } func insert(_ member: NSWindow.StyleMask) { window.styleMask.insert(member) } @IBAction func toggle(_ sender: NSButton) { switch sender.state { case .on: switch sender { case closable: insert(.closable) case miniaturizable: insert(.miniaturizable) case resizable: insert(.resizable) case closable: insert(.closable) case titled: insert(.titled) default: break } case .off: switch sender { case closable: remove(.closable) case miniaturizable: remove(.miniaturizable) case resizable: remove(.resizable) case closable: remove(.closable) case titled: remove(.titled) default: break } default: break } } }
样例项目