当NSSlider对象在视图

时间:2016-08-02 18:51:36

标签: nsslider nstabviewcontroller

我在IB中创建了一个带有相应XIB的NSViewController。 FWIW,我有以下窗口/视图层次结构:

class RxDemoController: NSWindowController {

    @IBOutlet weak var statusPaneView: NSView!
    @IBOutlet weak var annunciatorPaneView: NSView!
    @IBOutlet weak var trigaStatusPaneView: NSView!
    @IBOutlet weak var rxTabView: NSView!


    override var windowNibName  :String? { return "RxDemoController" }


    override func windowDidLoad() {
        super.windowDidLoad()

        let statusPaneViewController = StatusPaneViewController()
        statusPaneView.addSubview( statusPaneViewController.view )

        let annunciatorPaneViewController = AnnunciatorPaneViewController()
        annunciatorPaneView.addSubview( annunciatorPaneViewController.view )

        let trigaStatusPaneController = TrigaStatusPaneController()
        trigaStatusPaneView.addSubview( trigaStatusPaneController.view )

        let rxTabController = RxTabController()
        rxTabView.addSubview( rxTabController.view )

    }

}

我们可以忽略statesPaneViewController,annunciatorPaneViewController和trigaStatusPaneController,因为它们都正常工作。 rxTabController对象是一个选项卡视图,在RXTabController.swift中定义如下:

class RxTabController: NSTabViewController {

    @IBOutlet weak var rxDisplay1TabView: NSView!

    override var nibName :String? { return "RxTabController" }
    override func viewDidLoad() {
        super.viewDidLoad()

        let rxDisplay1ViewController     = RxDisplay1()
        rxDisplay1TabView.addSubview( rxDisplay1ViewController.view )
    }

RxDisplay1.xib目前包含两个对象:条形图对象(自定义组件:LinearBarGraph_t,在其他项目中工作正常,在第一个选项卡的视图控制器上工作正常),第二个对象是NSSlider。 NSSlider给了我一些问题。这是RxDisplay1的代码:

class RxDisplay1: NSViewController {

    @IBOutlet weak var linearPwrBG: LinearBarGraph_t!

    override func viewDidLoad() {
        super.viewDidLoad()

        linearPwrBG.pctInRange = 50
    }

    @IBAction func linearPwrSlider(sender: NSSlider) {
    }

}

我从条形图对象中右键拖动以生成@IBOutlet弱变量linearPwrBG:LinearBarGraph_t!出口;请注意,在viewDidLoad中,我将pctInRange字段设置为50.当应用程序启动时,此工作正常(条形图填充到50%标记)。

问题在于滑块。我已经从滑块拖动到RxDisplay1类以生成linearPwrSlider动作函数。连接似乎很好(函数声明旁边的小点填充,右键单击滑块显示进入此函数的操作)。

运行代码时,显示(和标签)正确显示。我的条形图显示50%的功率。但是,当我用鼠标触摸滑块时系统崩溃。我在AppDelegate中休息时抱怨" Bad Access"。

我在过去的项目中一直使用滑块。但是,这是我第一次使用选项卡式控制器,因此我怀疑将选项卡式控制器连接到系统其他部分的方式有问题。

0 个答案:

没有答案