【问题标题】:how to prevent storyboard from opening a window如何防止故事板打开窗口
【发布时间】:2015-04-12 01:44:06
【问题描述】:

我正在编写一个加载到状态栏的简单应用程序,单击它会在状态栏图标下打开一个弹出窗口。我正在使用故事板来定义我喜欢在弹出窗口中显示的 UI。事情是,一旦我实例化故事板,就会打开一个窗口。我怎样才能防止这种情况?这是我的应用程序委托中的代码:

func applicationDidFinishLaunching(aNotification: NSNotification) {
    let mainBoard = NSStoryboard(name: "MainBoard", bundle: nil)
}

【问题讨论】:

  • 目前尚不清楚您要达到的目标。 - 每个应用程序都必须有一个全屏窗口。您在applicationDidFinishLaunching 中的行没有做任何事情。故事板与 Info.plist 中您的应用的关联以及故事板中的初始视图控制显示的内容
  • 我的应用程序将一个图标加载到状态栏中。这就是应用程序!单击图标时,会加载视图并在弹出窗口中显示;因此我不需要初始窗口。
  • 将 iOS 标签更改为 OSX。如果在创建新项目时取消选择使用情节提要,会更容易实现。然后只需使用属性检查器“在启动时可见”取消选择
  • 完成。谢谢莱昂纳多。
  • @Farzed 不客气

标签: macos cocoa swift nswindow nsapplication


【解决方案1】:
import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
    var defaultWindow:NSWindow!
    func applicationDidFinishLaunching(aNotification: NSNotification) {
        defaultWindow = NSApplication.sharedApplication().windows.first as? NSWindow
        defaultWindow.close()

    }
    func applicationWillTerminate(aNotification: NSNotification) {
        // Insert code here to tear down your application
    }
    @IBAction func menuClick(sender: AnyObject) {
        defaultWindow.makeKeyAndOrderFront(nil)
    }
}

更新:Xcode 7.1.1 • Swift 2.1

NSApplication.sharedApplication().windows.first?.close()

【讨论】:

  • 谢谢。这行得通:) 你认为它可以在速度较慢的机器上轻弹吗?
猜你喜欢
  • 2017-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
  • 1970-01-01
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多