Обработка NSSegmentedControl изменения выбранного сегмента в какао

Простите за вопрос о супер-нубах, но я гуглял по этому вопросу в течение последнего часа и разочарован тем, что не могу найти ответ на такой очень простой вопрос:

Как я управляю изменениями контроля в Какао?

Я пришел из iOS, и ясно, что Cocoa не использует торговые точки или делегаты для обработки событий так же, как UIKit, и мне кажется, что я просто упускаю здесь очень важную информацию. Я понял, что он использует цепочку первого респондента, но кроме этого я не могу понять, как на самом деле это сделать, или как даже найти, где эти события определены или задокументированы.

Итак, у меня есть NSSegmentedControl внутри NSToolBar и я просто хочу знать, когда пользователь меняет выбранный сегмент. Я изучил документацию класса, но не вижу ни одного упоминания о каких-либо событиях или действиях, которые нужно обработать. Я заметил, если я перетаскиваю action На мой прокси-сервер первого респондента я попал в список квадриллионов различных действий, ни одно из которых не представляется актуальным.

Как же я могу сделать это в Какао?

1 ответ

Это код одного из моих проектов

var currntSeg : Int = 1
@IBOutlet weak var acSwitch: NSSegmentedControl!
@IBAction func SwitchButton(_ sender: AnyObject) {
    switch acSwitch.selectedSegment {
    case 0:
        currntSeg == 0 ?
            self.navVC?.pushViewController(Sleeper!, animated: true) :
            self.navVC?.popViewController(Sleeper!, animated: true)
    case 1:
        currntSeg < 1 ?
            self.navVC?.pushViewController(Work!, animated: true) :
            self.navVC?.popViewController(Work!, animated: true)
    case 2:
        currntSeg < 2 ?
            self.navVC?.pushViewController(Student!, animated: true) :
            self.navVC?.popViewController(Student!, animated: true)
    default:
        self.navVC?.pushViewController(Rose!, animated: true)
    }
    currntSeg = acSwitch.selectedSegment
    print("Selected Seg: \(acSwitch.selectedSegment)")
}
Другие вопросы по тегам