swift - 使用 swift 启动一个主窗口

标签 swift macos

我是 swift 的新手,但我“卡住了”。

我知道 C、Java、C++、PHP 等...

我正在尝试使用 swift 编写一个多窗口应用程序(使用 Cocoa 的 Mac OS 应用程序)。我已经可以做到了,但我的问题是当我关闭 窗口时。如果我关闭我的主窗口,当我尝试向其中添加子项时,我会收到错误消息或新窗口不会打开。

我有这个:

class SmallWindow: NSViewController {

    @IBOutlet var window: NSWindow! //Window inside the .xib file

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do view setup here.
    }

}

我已经使用 NSWindowControllerNSWindow 尝试了上述操作。

var smallwin = SmallWindow()
smallwin.window.makeKeyAndOrderFront(self) 
//already tried with smallwin.window too

我想知道如何以编程方式启动一个新窗口。我是否遗漏了一些步骤?

@IBOutlet var window: NSWindow!
@IBOutlet var smallwin : SmallWindow!

func applicationDidFinishLaunching(aNotification: NSNotification) {

    smallwin = SmallWindow()
    window.addChildWindow(smallwin.window, ordered: NSWindowOrderingMode.Above)

}

最佳答案

您可能不需要 窗口。你只需要一个窗口。

要在屏幕上放置一个新窗口,您需要做三件事:

  1. 以编程方式或通过加载 nib 创建窗口。

  2. 向窗口发送订购信息。通常您要发送 makeKeyAndOrderFrontorderFront。参见 “Opening and Closing Windows” in the Window Programming Guide .

  3. 保持对窗口的强引用。系统不一定保留对屏幕窗口的强引用。如果窗口被解除分配,它将自己从屏幕上移除。

关于swift - 使用 swift 启动一个主窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27047257/

相关文章:

macos - 如何使用 Swift 获取 TextField 值来制作 Mac App

python - Mac OSX python ssl.SSLError : [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl. c:749)

c++ - 在 OS X 上设置语言环境崩溃

ios - Gmail API 自动登录 swift

c++ - 将 C++ 和 Objective C 包含到 Swift 框架中

ios - 在易出错的初始值设定项 swift 1.2 中分配 let 变量

swift - 没有四舍五入的数字格式。 Xcode 中的一种行为在 playground 中转换出另一种行为

ios - 无法解锁钥匙串(keychain)

xcode - 如何折叠 Xcode 问题导航器中的所有问题

ios - iOS 和 Swift 4 中自定义键盘的高度