(Resolu) les bindings de NSBrowser
Philippe49
Membre
Bonjour,
Une action me fait passer mon browser de l'image 1 à l'image 2
Pour respecter le bindings via un NSTreeController, je code ainsi :
[treeController insertObject:selectedNode atArrangedObjectIndexPath:indexPathToInsert];
[treeController removeObjectAtArrangedObjectIndexPath:indexPathToRemove];
[treeController setSelectionIndexPath:indexPathToVerify];
les indexPath.. étant calculés auparavant.
Constatant des erreurs à l'exécution ( à l'état 2 j'obtiens de temps en temps name2-name2 au lieu de name2-name6) j'ai inclus le code ci-dessus ainsi
[firstResponder lockFocus];
[treeController insertObject:selectedNode atArrangedObjectIndexPath:indexPathToInsert];
[treeController removeObjectAtArrangedObjectIndexPath:indexPathToRemove];
[treeController setSelectionIndexPath:indexPathToVerify];
[firstResponder unlockFocus];
Mon problème
Pourquoi cela a l'air de marcher maintenant ?
Pourquoi des erreurs aléatoires (1 fois sur 10) avant ??
[Fichier joint supprimé par l'administrateur]
Une action me fait passer mon browser de l'image 1 à l'image 2
Pour respecter le bindings via un NSTreeController, je code ainsi :
[treeController insertObject:selectedNode atArrangedObjectIndexPath:indexPathToInsert];
[treeController removeObjectAtArrangedObjectIndexPath:indexPathToRemove];
[treeController setSelectionIndexPath:indexPathToVerify];
les indexPath.. étant calculés auparavant.
Constatant des erreurs à l'exécution ( à l'état 2 j'obtiens de temps en temps name2-name2 au lieu de name2-name6) j'ai inclus le code ci-dessus ainsi
[firstResponder lockFocus];
[treeController insertObject:selectedNode atArrangedObjectIndexPath:indexPathToInsert];
[treeController removeObjectAtArrangedObjectIndexPath:indexPathToRemove];
[treeController setSelectionIndexPath:indexPathToVerify];
[firstResponder unlockFocus];
Mon problème
Pourquoi cela a l'air de marcher maintenant ?
Pourquoi des erreurs aléatoires (1 fois sur 10) avant ??
[Fichier joint supprimé par l'administrateur]
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
ou comme le dit Hillegass, se contente-t-il d'activer le contexte graphique de la vue du first responder ?
et la doc
If you define methods that need to draw in a view without going through the drawRect: method, you must send lockFocus to the target view before any drawing is started and send unlockFocus as soon as you are done.
Le raccourci clavier utilisé Pomme+flèche est capté aussi par le NSBrowser. Avec Ctrl+flèche le bug devient très rare.
Pour que les bindings fonctionnent bien avec un NSBrowser, il est prudent de faire en sorte que l'on n'a pas plusieurs index path pour le même objet. Si les mêmes informations doivent être portées en différents index path, il est prudent de pointer sur des copies des objets associés.
L'article sur XML en dit plus long sur ces bindings.