macos – 不可调整大小的窗口swift

我有一个名为Hardness的NSViewController,我不需要让用户调整它的大小.当然,我可以在每次用户尝试时重新调整它,但有没有办法让用户打开一个窗口到全屏,或者拉伸窗口?
编辑/更新:Xcode 8.2.1•Swift 3.0.2

NSWindow有一个名为styleMask的属性,允许您控制用户可以使用哪种控件.如果您不想让用户调整窗口大小,则必须使用mutating方法remove(member:NSWindowStyleMask)删除样式掩码.resizable.要再次启用它,您需要使用mutating方法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: NSWindowStyleMask) {
        window.styleMask.remove(member)
    }
    func insert(_ member: NSWindowStyleMask) {
        window.styleMask.insert(member)
    }
    @IBAction func toggle(_ sender: NSButton) {
        switch sender.state {
        case NSOnState:
            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 NSOffState:
            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
        }
    }
}

Sample Project

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...