我创建了一个新的窗口控制器,它tabViewController
在我的应用程序中托管一个。我已经向窗口控制器添加了类,并且在选项卡视图中的所有视图控制器中都具有相同的类。
我可以连接按钮并给它们一个动作,它工作得很好,但是,我尝试连接一个插座并尝试通过插座改变一些东西,它返回nil并使程序崩溃。例如,这个确切的代码在我的应用程序的预制中工作viewController
,但返回:
Unexpectedly found nil while implicitly unwrapping an Optional value
通过我创建的新选项卡视图控制器运行它时。
对我来说奇怪的是我可以使用常规视图控制器并且插座连接良好,但如果我想使用选项卡视图控制器,这些 nil 错误正在发生。
我确保 nil 与通过打印音频设备来获取按钮的输入无关,并且音频设备在那里并且能够被打印。即使已连接,按钮似乎也不存在。
我还尝试NSTextField
在将其连接到插座后简单地更改颜色,这会返回相同的 nil 错误。
知道我在这里可能做错了什么吗?非常感谢帮忙。
class FirstLaunchViewController: NSViewController {
var FLWindow: FirstLaunchWindowController?
var selectedAudioDevice = [String]()
@IBOutlet weak var deviceListPopUpButton: NSPopUpButton!
@IBOutlet weak var visualizeButton: NSButton!
override func viewDidLoad() {
super.viewDidLoad()
self.preferredContentSize = NSMakeSize(self.view.frame.size.width, self.view.frame.size.height)
populateDeviceList()
}
@IBAction func CloseStartupGuide(_ sender: Any) {
self.view.window?.windowController?.close()
}
@IBAction func popUpDidChange(_ sender: Any) {
print("changed")
}
//grab inputs for button
fileprivate func populateDeviceList() {
deviceListPopUpButton.removeAllItems()
for device in AudioDevice.allInputDevices() {
var teststring = ""
teststring = device.uid!
print(device.name)
deviceListPopUpButton.addItem(withTitle: device.name)
deviceListPopUpButton.lastItem?.tag = Int(device.id)
selectedAudioDevice.append(device.uid!)
}
}
}
}