小编gie*_*tal的帖子

swift如何延迟mac菜单栏出现动画

问题:
在全屏 mac 应用程序中,当您将鼠标指针移到顶部时,mac 菜单栏会立即下拉。我想制作一个将菜单栏的显示延迟几秒钟的应用程序。

这应该是可能的,因为这是 VMWare Fusion 所做的确切行为。在全屏模式下,应用程序让鼠标指针在屏幕顶部停留几秒钟,然后下拉菜单栏。

我将如何着手解决这个问题?

---- 更新 ----
当我想使用 NSMenu.setMenuBarVisible() 时,我可以隐藏和显示菜单栏。
但是,如果我在全屏模式下有多个窗口应用程序,这似乎并不像我认为的那样工作。
它适用于全屏窗口之一,但如果我切换到另一个全屏窗口,我必须在调用 setMenuBarVisible(true) 之前移动鼠标似乎生效。

代码

public class CustomWindowController: NSWindowController, NSWindowDelegate {

    override public func windowDidLoad() {
        window!.delegate = self
    }

    public class func create() -> CustomWindowController {
        let storyboard = NSStoryboard(name: "Main", bundle: nil)
        let controller = storyboard.instantiateControllerWithIdentifier("CustomWindowController") as! CustomWindowController
        controller.window?.collectionBehavior.insert(.FullScreenDisallowsTiling)

        return controller
    }

    // MARK: NSWindowDelegate protocol

    public func windowDidEnterFullScreen(notification: NSNotification) {
        print("window did enter fullscreen")
        NSMenu.setMenuBarVisible(false)
    }

    public func windowDidBecomeKey(notification: NSNotification) { …
Run Code Online (Sandbox Code Playgroud)

macos delay nsmenu nswindow swift

5
推荐指数
0
解决办法
1118
查看次数

标签 统计

delay ×1

macos ×1

nsmenu ×1

nswindow ×1

swift ×1