NSSplitView et de mise en page automatique

Comment dois-je utiliser la mise en page automatique des contraintes à l'intérieur de NSSplitView sous-vue?

Mon NSSplitView sous-vue a 3 sous-vue: topPane, tableContainer et bottomPane et j'ai mis la limite comme ceci:

NSDictionary* views = NSDictionaryOfVariableBindings(topPane, tableContainer, bottomPane);

for (NSView* view in [views allValues]) {
    [view setTranslatesAutoresizingMaskIntoConstraints:NO];
}

[myView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[topPane(34)][tableContainer][bottomPane(24)]|"
                                                               options:0 
                                                               metrics:nil 
                                                                 views:views]];

[mySplitView addSubview:myView];

Et a obtenu ce dans la console:

Unable to simultaneously satisfy constraints:
(
    "<NSLayoutConstraint:0x7fd6c4b1f770 V:[NSScrollView:0x7fd6c4b234c0]-(0)-[CPane:0x7fd6c4b2fd10]>",
    "<NSLayoutConstraint:0x7fd6c4b30910 V:[CPane:0x7fd6c4b2f870(34)]>",
    "<NSLayoutConstraint:0x7fd6c4b30770 V:|-(0)-[CPane:0x7fd6c4b2f870]   (Names: '|':NSView:0x7fd6c4b22e50 )>",
    "<NSLayoutConstraint:0x7fd6c4b212f0 V:[CPane:0x7fd6c4b2fd10]-(0)-|   (Names: '|':NSView:0x7fd6c4b22e50 )>",
    "<NSLayoutConstraint:0x7fd6c4b2f910 V:[CPane:0x7fd6c4b2f870]-(0)-[NSScrollView:0x7fd6c4b234c0]>",
    "<NSLayoutConstraint:0x7fd6c4b21290 V:[CPane:0x7fd6c4b2fd10(24)]>",
    "<NSAutoresizingMaskLayoutConstraint:0x7fd6c3630430 h=--& v=--& V:[NSView:0x7fd6c4b22e50(0)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7fd6c4b1f770 V:[NSScrollView:0x7fd6c4b234c0]-(0)-[CPane:0x7fd6c4b2fd10]>

Je pense que <NSAutoresizingMaskLayoutConstraint:0x7fd6c3630430 h=--& v=--& V:[NSView:0x7fd6c4b22e50(0)]> provoque cela, mais je ne peux pas réinitialiser d'un redimensionnement automatique de masque, parce que NSSplitView il définit.

Ce qui est le meilleur moyen d'utiliser la mise en page automatique à l'intérieur de la vue fractionnée? Et est-il un moyen de gérer les min/max de la taille de la vue fractionnée sous-vue avec mise en page automatique sans NSSplitViewDelegate?

  • Même problème ici. J'ai posé le tout sur IB plutôt que de la programmation, mais ont les mêmes sortie de débogage, y compris la NSAutoresizingMaskLayoutConstraint.
  • Cela semble fixé en vertu de 10,8 mais est cassé comme vous le notez, sous 10.7. Dans 10,8 vous pouvez définir les hauteurs minimales & de la largeur de l'affichage du contenu de la vue fractionnée dans Xcode (4.5.2 de toute façon). Ne peut pas le faire sous 10.7 et des apps avec ce créé en de 10,8 ne fonctionnent toujours pas droit à 10.7
  • Fonctionne en général avec 10,8+ mais les contraintes doivent être spécifiés entre les sous-vues pour la plupart des points de vue - pas supre - ou vous aurez l'Impossibilité de satisfaire simultanément erreur..
InformationsquelleAutor Dmitry | 2012-06-29