Обработка 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)")
}