如何启用/禁用缩放按钮(绿色+按钮)?

时间:2012-07-27 01:58:46

标签: macos cocoa button zoom nswindow

我是Mac OSx / Cocoa开发的新手。在我的第一个应用程序的创建过程中,我遇到了一些问题,其中一个是绿色+按钮的问题,用于缩放目的。

我想知道是否可以动态设置应用程序窗口的缩放按钮的行为?我没有违反Apple的指导原则吗?

我想根据特定用户指定按钮的行为。比如,允许用户使用缩放按钮,然后应该启用该按钮;否则,请禁用该按钮。

在这种情况下,当应用程序启动时,我正在检查是否允许用户启用缩放按钮。从这里开始,我想自定义与缩放按钮相关的窗口行为 - 是否应该根据用户模式的先前检查启用或禁用它。

感谢您的帮助!

3 个答案:

答案 0 :(得分:10)

您可以使用standardWindowButton:NSWindowZoomButton获取对该按钮的引用,然后对任何NSButton执行任何操作。

更新(在swift中):

var button = view.window?.standardWindowButton(NSWindowButton.ZoomButton)
button?.enabled = false

答案 1 :(得分:6)

抓住按钮并启用设置并不理想。最好的方式(10.6+)是使用setStyleMask:。以下是如何执行此操作:

window.styleMask = NSTitledWindowMask | NSClosableWindowMask

您可以随意添加或删除样式。在不更改样式的情况下执行此操作的另一种方法是将minSizemaxSize设置为相同的大小。这也将禁用调整大小。

答案 2 :(得分:1)

在Swift 3中,这是删除该功能的最简单方法:

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

我通常在viewDidAppear中为故事板中的视图控制器执行此操作,故事板中会自动为其创建窗口控制器,而不是我可以使用的窗口控制器。