我是Mac OSx / Cocoa开发的新手。在我的第一个应用程序的创建过程中,我遇到了一些问题,其中一个是绿色+按钮的问题,用于缩放目的。
我想知道是否可以动态设置应用程序窗口的缩放按钮的行为?我没有违反Apple的指导原则吗?
我想根据特定用户指定按钮的行为。比如,允许用户使用缩放按钮,然后应该启用该按钮;否则,请禁用该按钮。
在这种情况下,当应用程序启动时,我正在检查是否允许用户启用缩放按钮。从这里开始,我想自定义与缩放按钮相关的窗口行为 - 是否应该根据用户模式的先前检查启用或禁用它。
感谢您的帮助!
答案 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
您可以随意添加或删除样式。在不更改样式的情况下执行此操作的另一种方法是将minSize
和maxSize
设置为相同的大小。这也将禁用调整大小。
答案 2 :(得分:1)
在Swift 3中,这是删除该功能的最简单方法:
var style = window.styleMask
style.remove(.resizable)
window.styleMask = style
我通常在viewDidAppear
中为故事板中的视图控制器执行此操作,故事板中会自动为其创建窗口控制器,而不是我可以使用的窗口控制器。