ventanas ventana una truco teclado tamaño reducir quitar pasar para pantalla otra macbook mac letra entre cómo con como cambiar aumentar ajustar macos cocoa swift resize window

macos - ventana - reducir tamaño pantalla mac



Cambiar el tamaño de la ventana según una variable rápida (3)

Digamos que su ventana tiene una IBOutlet llamada "ventana", y su número dinámico se llama "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) }

Tengo un NSViewController y una variable num . Quiero cambiar el tamaño de la ventana dinámicamente de acuerdo con esa variable. ¿Hay alguna manera de hacer eso rápidamente?


En Swift 3 para cambiar el tamaño de la ventana, usa setFrame.

Un ejemplo de ViewController:

func resizeWin(size:(CGFloat,CGFloat)){ self.view.window?.setFrame(NSRect(x:0,y:0,width:size.0,height:size.1), display: true) }


Necesitaba alternar la visualización de una vista de texto, así que superpuse la ventana una vista invisible - hideRect justo antes de la vista de texto; de esta manera puedo cambiar el tamaño de la más pequeña (hideRect) y restaurar más tarde al tamaño original - origRect. Hide y rect original capturados en viewDidLoad (). Swift 3 / Xcode 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 } } }

Esto también conserva el origen visual de la viuda y el tamaño mínimo.