使用Swift语言在OSX中自动关闭窗口

6

我知道这可能是一个非常愚蠢的问题,但我对Swift编程语言是个新手。

我正在构建一个处理用户认证的示例Mac应用程序。我的问题是如何使用Swift自动关闭窗口。

我已经尝试过:

var window = NSWindow()
window.close()

但是它会出现与线程相关的错误,并打开调试器。
请帮忙。

使用瞬态弹出框。当然,还有很多其他方法可以实现这一点。 - qwerty_so
2个回答

15
在Swift中,self.view.window?.close() 对我起了作用。

-1

你是怎么理解“自动关闭”的?即当它变得可见时,它就关闭了吗?看一下“NSWindowController:windowWillLoad:”

i.e.:

import Cocoa

class window: NSWindowController {
  override func windowWillLoad()
  {
    self.callFunctionToUnloadWindow();
  }
}

这是在窗口加载之前立即调用的。

除此之外,我不太确定你想要实现什么。


关闭窗口出现后立即关闭可能不太合理。 OP 想要输入密码。他可能没有考虑到输入密码的用例,因为输入密码意味着输入/确认,并调用 performClose - qwerty_so
@Adrian 不是的.. 我想问的是在我的身份验证之后,我打开的应用程序应该自动关闭.. 就像 NSWindow().close().. 另外,我正在 ViewController 下编写整个内容,而不是在 NSWindowController 中。 - Yashwanth Babu
在这方面,我会在后台线程上使用计时器(计时器:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Timers/Timers.html)。GitHub 上有很多不错的 GCD 友好型计时器。当有任何活动,例如按键或鼠标点击时,重置计时器。如果没有活动,则让它继续计时,当达到 x 秒/分钟时,触发“[window orderOut:nil];”。 - Adrian Sluyters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接