我有以下NSWindowController
:
import Foundation
import Cocoa
extension NSImage.Name {
static let skyflokLogo = NSImage.Name("skyflokLogo")
}
class LoginWindowController: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
}
@IBAction func cancelLogin(_ sender: NSButton) {
print("Jones")
}
@IBAction func confirmLogin(_ sender: NSButton) {
print("lol")
}
}
然后我像这样打开窗口:
static func loadLoginWindow() -> NSWindowController {
let win = LoginWindowController(windowNibName: NSNib.Name("LoginWindow"))
win.showWindow(self)
return win
}
并将其存储在 AppDelegate 类中:
@IBAction func loginFunction(_ sender: NSMenuItem) {
print("TEST")
testCtrl = UIHelpers.loadLoginWindow()
}
窗口包含的组件可以在这里看到:
我的问题是窗口按预期打开,但我的 IBAction
功能不起作用,并且我无法通过从窗口拖动控件来创建 IBOutlet
。有人可以指导我查看文档或帮助我解决这个问题吗?
最佳答案
您需要在某处保存您的 LoginWindow (我个人建议将“Controller”附加到类名)实例。否则,loadLoginWindow()
结束后实例就会消失,因此无法执行 IBActions。
关于cocoa - NSWindow 打开,但按钮不起作用,并且我无法创建 IBOutlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49130940/