8
votes

Comment basculer la visibilité de NSSPLITVIEW SUBVIEW + Hide Pane Splitter Divider?

Nous avons un parent Split Affichage ( nssplitView ) et deux sous-espions, contenu et barre latérale (le la barre latérale est à droite).

Quel serait le moyen optimal de la cacao pour basculer la barre latérale ?

  • J'aimerais vraiment l'aimer, si la solution suggérée inclut l'animation
  • Je n'ai vraiment pas besoin de suggestions relatives aux plugins externes, etc. (par exemple BWToolkit)

    indice: J'essaie de le faire, mais j'avais toujours des problèmes de cacher le diviseur de la NSSplitView également. Comment pourrais-je le faire, tout en le masquant en même temps?


0 commentaires

6 Réponses :


7
votes

Voici un didacticiel assez décent qui montre comment faire cela: DÉLACELLER LES MYSTERES DE NSSPLITVIEW .

Cacher le diviseur est effectué dans la méthode de déléguée de NSSPLITVIEW SPLIDVIEW: AVERTHIDEDIDEDEX: .

Vous devrez animer le format de cadre Changer vous-même si vous n'aimez pas le chemin NSSPLITVIEW.


1 commentaires

DevoirViderViderat ne fonctionne que si le diviseur est au bord de la vue scindée, non si elle est comprise entre 2 volets.



4
votes

J'ai écrit une version Swift du contenu dans le lien de la réponse de @ Nathan qui fonctionne pour moi. Dans le contexte de mon exemple SplitView est défini ailleurs, probablement en tant que propriété d'instance sur une classe englobante: xxx

Ces fonctions seront probablement des méthodes dans une classe, elles sont pour moi. Si votre SplitView peut être nil Vous devez évidemment vérifier cela. Cela suppose également que vous avez deux sous-visions et celle de l'indice 1, ici comme SidePanel est celui que vous souhaitez effondrer.


0 commentaires

3
votes

J'ai eu des artefacts avec le code ci-dessus, probablement parce que c'était hors de contexte. Je suis sûr que ça marche là où il était censé. Quoi qu'il en soit, voici une implémentation très simplifiée: xxx

pour voir un bon exemple en utilisant des animations, cliquez pour télécharger Ce fichier .


0 commentaires

4
votes

dans xcode 9.0 avec storyboards ouverte Scène de l'application Sélectionnez Affichage-> Menu-> Afficher la barre latérale. Ctrl-Click Afficher la barre latérale, dans les actions envoyées Supprimer le fourni en une, cliquez sur x. Du cercle Ctrl Faites glisser vers le premier répondeur dans la scène de l'application et sélectionnez TogglesideBar pour vous connecter. Ouvrez le storyboard et sélectionnez le premier élément de la vue Split et dans Attributs Inspecteur Change Comportement de la valeur par défaut à la barre latérale. Exécuter et essayer avec l'élément de menu Afficher Afficher / masquer. Tout fait dans l'interface Builder Aucun code. TogglesideBar gère le premier élément de vue scindé. https://github.com/dis3buted/splitviewcontroller


1 commentaires

Merci! Savez-vous si cela peut être étendu au fonctionnement de deux barres ultérieurs différents?



5
votes

La meilleure façon de le faire est la suivante: et il est animé: [ SWIFT 5 STRUT>]

    splitViewItems[1].animator().isCollapsed = true // Show side pane
    splitViewItems[1].animator().isCollapsed = false // hide side pane


0 commentaires

0
votes

Si votre NssplitView code> Contrôle fait partie d'un objet NSSPLITVIEWCONTROLLER code>, vous pouvez simplement utiliser ceci:

splitViewController.toggleSidebar(nil)


0 commentaires