Je travaille avec un NSTextView et ai un ensemble de délégué pour sa propriété -textStorage
. À la réception de -textStorageDidProcessEditing:
j'ai besoin d'appliquer des attributs à des parties du texte.Cocoa: NSTextStorageDelegate a NSLayoutManager obsolète?
Mes attributs sont appliqués, mais ils sont toujours appliqués au texte avant j'ai fait le modifier, même si je suis en invoquant les méthodes de NSLayoutManager pas de -will...
mais did...
.
Il est comme si le gestionnaire de mise en page ne connaît pas la récente insertion glyphe/suppression à ce stade de l'exécution, donc je suppose NSTextView/NSTextStorage appelle la méthode délégué puis informe le gestionnaire de mise en page de mise à jour.
Existe-t-il un moyen de forcer le gestionnaire de mise en page à mettre à jour avec effet immédiat pour que cela fonctionne? Je connais la (les) méthode (s) NSTextStorage
-addAttribute:value:range:
de NSTextStorage
et j'utilise celles-ci avec succès jusqu'à présent, mais j'ai atteint un point où je dois maintenant le faire via le gestionnaire de disposition plutôt que dans le cadre de un exercice de refactoring/optimisation.