应用程序进入全屏模式时检测(Swift / Mac)

时间:2015-09-17 21:02:22

标签: macos swift cocoa

我希望这是一个简单的问题,但我试图找出一种方法来确定用户何时选择在应用中进入全屏模式。实际上,我在Cocoa应用程序中有一个表,当应用程序进入全屏模式时看起来很傻。一旦应用程序进入全屏模式,我想以编程方式调整表格行的高度,但我似乎无法弄清楚如何这样做。

我认识到需要使用windowWillEnterFullScreen:windowDidEnterFullScreen:,或者找到一种让我的窗口符合我的App Delegate文件的方法,尽管我很难弄清楚这一点。是否有任何可以提供的资源可以指向正确的方向?

谢谢!

编辑:这是我尝试过的事情;

AppDelegate.swift 导入Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate {

var window: NSWindow!

func windowDidResize (notification: NSNotification) {
    window.delegate = self
    print("resized")
}


func applicationDidFinishLaunching(aNotification: NSNotification) {
    // Insert code here to initialize your application
        }

func applicationWillTerminate(aNotification: NSNotification) {
    // Insert code here to tear down your application
}

}

1 个答案:

答案 0 :(得分:3)

windowWillEnterFullScreen:windowDidEnterFullScreen:NSWindowDelegate方法 - 为了能够使用它们,您只需要成为NSWindow delegate。您的app委托对象或任何其他对象可以实现此目的。

如果您想在转换过程中使用自定义动画,可以使用其他一些委托方法,例如window:startCustomAnimationToEnterFullScreenOnScreen:withDuration:

您还可以检查window.styleMask & NSFullScreenWindowMask != 0以检查窗口当前是否为全屏。