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

Kim*_*poy 7 macos cocoa zoom button nswindow

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

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

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

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

谢谢你的帮助!

rde*_*mar 10

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

更新(快速):

var button = view.window?.standardWindowButton(NSWindowButton.ZoomButton)
button?.enabled = false
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!如果您想保持窗口可调整大小,但不希望您的应用程序在按下按钮时填满整个屏幕,则此代码将禁用绿色缩放按钮。 (2认同)

Sam*_*fes 6

抓住按钮并启用设置并不理想.最好的方式(10.6+)是使用setStyleMask:.这是如何做到这一点:

window.styleMask = NSTitledWindowMask | NSClosableWindowMask
Run Code Online (Sandbox Code Playgroud)

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