NSWindow Animate显示/隐藏标题栏

Gar*_*son 4 macos cocoa titlebar nswindow swift

我可以通过一个包含以下内容的操作方法以两种方式之一显示和隐藏我的NSWindows标题栏:

window.titlebarAppearsTransparent = true
window.movableByWindowBackground  = true
Run Code Online (Sandbox Code Playgroud)

或者最好:

window.styleMask = NSBorderlessWindowMask
window.movableByWindowBackground  = true
window.canBecomeKeyWindow
Run Code Online (Sandbox Code Playgroud)

我能以任何方式使用淡化效果来制作动画吗?或者这会涉及一种更复杂的显示和隐藏窗口标题栏的方法..?

Gar*_*son 6

好的,我找到了一个显示和隐藏带有动画效果的NSWindow标题栏的解决方案.

你可以在任何方法中实现这一点,我有一个标题栏淡出文本更改事件方法,并逐渐淡入任何移动.

淡出标题栏:

    if window.standardWindowButton(NSWindowButton.ZoomButton)?.superview?.alphaValue > 0.1 {
        window.standardWindowButton(NSWindowButton.ZoomButton)?.superview?.animator().alphaValue = 0
    }
Run Code Online (Sandbox Code Playgroud)

淡入标题栏:

    if window.standardWindowButton(NSWindowButton.ZoomButton)?.superview?.alphaValue < 1 {
        window.standardWindowButton(NSWindowButton.ZoomButton)?.superview?.animator().alphaValue = 1
    }
Run Code Online (Sandbox Code Playgroud)

所以我们得到标题栏视图的事实是它是standardWindowButtons的超级视图.并简单地设置标题栏视图的alpha值的动画.