macos - what - एक चर गति के अनुसार विंडो का आकार बदलना




what is apple safari (2)

मान लें कि आपकी विंडो में "विंडो" नामक एक IBOutlet है, और आपकी डायनामिक नंबर "myDynamicNumber" नाम दिया गया है:

func resize() {
    var windowFrame = window.frame
    let oldWidth = windowFrame.size.width
    let oldHeight = windowFrame.size.height
    let toAdd = CGFloat(myDynamicNumber)
    let newWidth = oldWidth + toAdd
    let newHeight = oldHeight + toAdd
    windowFrame.size = NSMakeSize(newWidth, newHeight)
    window.setFrame(windowFrame, display: true)
}

मेरे पास एक NSViewController और एक चर num मैं उस चर के अनुसार गतिशील रूप से विंडो के आकार को बदलना चाहता हूं क्या यह तेजी से करने का कोई तरीका है?


मुझे पाठ दृश्य देखने में टॉगल करने की आवश्यकता थी, इसलिए मैंने खिड़की को एक अदृश्य दृश्य को ढेर कर दिया - छिपाना पाठ दृश्य से कम ही दिखाया गया; इस तरह से मैं छोटे (छुपाएं) का आकार बदल सकता हूं और बाद में मूल आकार में लौट सकता हूं - मूल छुपाएं और मूल रीटक देखें viewdidoad पर कब्जा कर लिया स्विफ्ट 3 / एक्सकोड 8.3.3

// class global contants
let kTitleUtility =     16
let kTitleNormal =      22

@IBOutlet var hideView: NSView!
var hideRect: NSRect?
var origRect: NSRect?

@IBAction func toggleContent(_ sender: Any) {
    // Toggle content visibility
    if let window = self.view.window {
        let oldSize = window.contentView?.bounds.size
        var frame = window.frame
        if toggleButton.state == NSOffState {

            frame.origin.y += ((oldSize?.height)! - (hideRect?.size.height)!)
            window.setFrameOrigin(frame.origin)
            window.setContentSize((hideRect?.size)!)

            window.showsResizeIndicator = false
            window.minSize = NSMakeSize((hideRect?.size.width)!,(hideRect?.size.height)!+CGFloat(kTitleNormal))
            creditScroll.isHidden = true
        }
        else
        {
            let hugeSize = NSMakeSize(CGFloat(Float.greatestFiniteMagnitude), CGFloat(Float.greatestFiniteMagnitude))

            frame.origin.y += ((oldSize?.height)! - (origRect?.size.height)!)
            window.setFrameOrigin(frame.origin)
            window.setContentSize((origRect?.size)!)

            window.showsResizeIndicator = true
            window.minSize = NSMakeSize((origRect?.size.width)!,(origRect?.size.height)!+CGFloat(kTitleNormal))
            window.maxSize = hugeSize
            creditScroll.isHidden = false
        }
    }
}

इसने विधवा के दृश्य मूल को भी संरक्षित किया, और न्यूनतम आकार लेना





window