Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to enable / disable the zoom button (green + button)?

I'm new in Mac OSx / Cocoa development. During the creation of my first app, I bumped into a few things, and one of which is my issue on the green + button which is intended for zooming purposes.

I'd like to know if it is possible to dynamically set the behavior of the zoom button of the app window? Am I not violating any rule from Apple's guidelines?

I want to specify the behavior of the button according to a specific user. Say, the user is allowed to have a zooming button, then the button should be enabled; otherwise, leave the button disabled.

In this case, when the app is launched, I am checking if the user is allowed to have an enabled zoom button. From here I want to customize the behavior of the window pertaining to the zoom button - whether it should be enabled or disabled according to the prior checking of the user's mode.

Thanks ahead for the help!

like image 722
Kimpoy Avatar asked Jul 27 '12 01:07

Kimpoy


2 Answers

You can get a reference to that button with standardWindowButton:NSWindowZoomButton, and then do whatever you can do with any NSButton.

Update (in swift):

var button = view.window?.standardWindowButton(NSWindowButton.ZoomButton)
button?.enabled = false
like image 195
rdelmar Avatar answered Nov 06 '22 15:11

rdelmar


In Swift 3, here is the easiest way to remove the ability:

var style = window.styleMask
style.remove(.resizable)
window.styleMask = style

I commonly do this in viewDidAppear for view controllers in storyboards that have a window controller created for them automatically instead of one I can mess with.

like image 40
Sam Soffes Avatar answered Nov 06 '22 15:11

Sam Soffes