代码之家  ›  专栏  ›  技术社区  ›  josh

NSWindow闪烁

  •  1
  • josh  · 技术社区  · 9 年前

    我试图在单击该窗口的相应按钮时显示一个NSWindow(关于->aboutWindow,首选项->preferencesWindow)。但是,当我单击按钮打开窗口时,它们会闪烁,然后消失。我看到了一两篇关于这个问题的帖子,描述了如何修复它,但它相对模糊,并且在Objective-C而不是Swift中进行了解释。我想我知道问题是什么(在 @IBAction ,在操作完成后删除实例),但我不确定如何修复它。

    所有代码在结束 https://github.com/madebybright/Nimble/tree/windows

    如果能解释一下修复方法,我们将不胜感激。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Leo Dabus    9 年前

    您只需要将控制器的声明移出方法。尝试如下:

    let aboutController = AboutController(windowNibName: "About")
    let preferencesController = PreferencesController(windowNibName: "Preferences")
    
    func showAbout(sender: AnyObject) {
        println("showing about window")
        aboutController.showWindow(aboutController.aboutWindow)
    }
    
    func showPreferences(sender: AnyObject) {
        println("showing preferences window")
        preferencesController.showWindow(preferencesController.preferencesWindow)
    }