(Resolu) les bindings de NSBrowser

Philippe49Philippe49 Membre
août 2007 modifié dans API AppKit #1
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]

Réponses

  • Philippe49Philippe49 Membre
    20:32 modifié #2
    Plus clairement, lockFocus bloque-t-il le parcours de la chaà®ne des Responder ?
    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.
  • Philippe49Philippe49 Membre
    août 2007 modifié #3
    Le problème est sans doute dans une réponse à  un post précédent :
    dans 1181548123:

    Le problème est que l'utilisation de touches multi-usage (comme les touches fléchées) an tant que raccourci clavier, c'est un peu jouer avec le feu.


    Le raccourci clavier utilisé Pomme+flèche est capté aussi par le NSBrowser. Avec Ctrl+flèche le bug devient très rare.
  • Philippe49Philippe49 Membre
    août 2007 modifié #4
    lock focus n'a rien à  voir dans l'histoire.

    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.
  • Philippe49Philippe49 Membre
    20:32 modifié #5

    L'article sur XML en dit plus long sur ces bindings.
Connectez-vous ou Inscrivez-vous pour répondre.