/ / Délégué au cacao nstabviewcontroller - swift, cacao

Délégué cacao nstabviewcontroller - swift, cacao

J'ai un principal NSTabViewController avec quelques onglets:

class MainTabViewController: NSTabViewController {

override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}

override func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
print(tabView)// returns <NSTabView: 0x101e17a10> but what to do with it ?
}

}

Je veux vérifier chaque NSViewController si variable hasChanges est true puis pop-up message:

"Vous avez des modifications non enregistrées. Voulez-vous changer d'onglet?"

Si je vérifie ceci dans MainTabViewController Je reçois <NSTabView: 0x101e17a10> et que faire avec cela, je ne sais pas.

Si j'essaye d'utiliser NSTabViewDelegate dans mon MyViewController alors je ne sais pas comment déléguer MainTabViewController en elle. Où l'attacher?

class MyViewController: HIDNSViewController {
func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
//Never called
}
}

Réponses:

1 pour la réponse № 1

0x101e17a10 est l'adresse du NSTabView instance pointée par l'objet tabView. Vous devez imprimer l'onglet identifiants dans votre méthode didSelect.

Vous devez définir les identificateurs dans Interface Builder:

entrer la description de l'image ici

Et puis (par exemple):

override func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
if tabView.selectedTabViewItem?.identifier! as! String == "1" {
print("FIRST VC")
} else {
print("SECOND VC")
}
}

Sortie lors de la tabulation:

entrer la description de l'image ici