0

我创建了一个新的窗口控制器,它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!)
                
            }
        }
    }    
}
4

0 回答 0