9

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

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

我想根据特定用户指定按钮的行为。比如说,允许用户有一个缩放按钮,那么这个按钮应该是启用的;否则,请禁用该按钮。

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

提前感谢您的帮助!

4

3 回答 3

11

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

更新(迅速):

var button = view.window?.standardWindowButton(NSWindowButton.ZoomButton)
button?.enabled = false
于 2012-07-27T02:27:30.017 回答
7

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

window.styleMask = NSTitledWindowMask | NSClosableWindowMask

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

于 2015-04-07T03:59:35.143 回答
2

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

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

我通常viewDidAppear在情节提要中为视图控制器执行此操作,这些视图控制器自动为它们创建了一个窗口控制器,而不是我可以弄乱的一个。

于 2016-10-13T21:26:54.200 回答