Je peux reproduire ce comportement de manière cohérente dans TextEdit.app et Notes.app sur macOS Catalina 10.15.3 (19D76). Cela se produit avec n'importe quel type d'insertion d'image (par exemple, presse-papiers, glisser-déposer).
Je ne sais pas comment l'empêcher de se produire lorsque vous ajoutez une image au texte, mais peut-être obtiendrez-vous ce que vous voulez en insérant une image au milieu du texte formaté ; alors le texte avant/après conserve la mise en forme originale. Une chose qui a bien fonctionné pour moi est de taper un espace, puis d'appuyer une fois sur la touche de la flèche gauche avant de coller une image.
Je vais entrer dans plus de détails ci-dessous sur ce que j'ai appris.
La police revient toujours à Helvetica 12 pt après avoir collé une image, quelle que soit la configuration que j'ai essayée. Cela semble être une valeur par défaut du système, impossible à changer. Bien que je n'aie pas encore essayé d'utiliser TinkerTool pour modifier les paramètres de police système.
Regarder dans les fichiers RTFD
Je ne suis pas sûr comment regarder l'état en mémoire de NSTextView
mais si nous enregistrons le fichier sur le disque alors nous pouvons inspecter le contenu du fichier RTF. Nous recherchons une directive de taille de police comme \fs12
ou \fs24
. En fait, le format de fichier RTF original ne prend pas en charge les images, donc nous parlons vraiment de bundles .rtfd
(Répertoire de format de texte enrichi) ici.
Au début, j'ai comparé deux fichiers, l'un où aucune image n'avait encore été collée, et un autre où l'image avait été collée puis retirée. Fait intéressant, les contenus des fichiers étaient identiques ! Cela suggère qu'il n'y a pas de modification intentionnelle des paramètres de mise en forme du texte, et que le retour à Helvetica 12 pt est directement lié à la présence de l'image.
Ensuite, j'ai inspecté un fichier dans lequel j'avais ajouté la même image plusieurs fois. La même directive d'image se répète sans aucune directive de mise en forme du texte. En particulier, \fs12
n'apparaît jamais dans le fichier.
\f0\fs48 \cf0 Bonjour le monde
\fs24 {{\NeXTGraphic Pasted Graphic.png \width500 \height520 \appleattachmentpadding0 \appleembedtype0 \appleaqc}}
{{\NeXTGraphic Pasted Graphic.png \width500 \height520 \appleattachmentpadding0 \appleembedtype0 \appleaqc}}
{{\NeXTGraphic Pasted Graphic.png \width500 \height520 \appleattachmentpadding0 \appleembedtype0 \appleaqc}}
Sur la base de cela, je peux déterminer de manière assez concluante que ce comportement de collage est lié à la manipulation en mémoire du texte formaté. En d'autres termes, cela semble être une particularité de l'implémentation d'Apple de NSTextView
.
Il me semble peu probable que ce soit le comportement que les ingénieurs logiciels d'Apple ont intenté de créer. S'il était intentionnel, alors il serait hors sujet de spéculer sur les raisons. Mais comme il semble s'agir d'un bug, je vous dirigerais vers la page d'Apple où vous pouvez envoyer des commentaires pour macOS.
Pistes possibles pour des investigations futures
Comment pouvons-nous inspecter directement le contenu du presse-papiers ? Y a-t-il des informations de mise en forme de texte associées à une image dans le presse-papiers ?
Nous pourrions probablement identifier un cas plus petit pour reproduire ce problème en manipulant directement un NSMutableAttributedString. Cela fait un moment que je n'ai pas développé pour Mac, mais je me concentrerais probablement sur appendAttributedString:
ou insertAttributedString:àlindex:
.
0 votes
Etes-vous sûr que la police de caractères change? Sur mon ordinateur fonctionnant avec High Sierra, le nom de la police change mais la police elle-même est vraiment ma police par défaut. Dès que je déplace le curseur, le nom de la police revient à l'original.
0 votes
Oui, absolument. Taper du texte rend clair qu'il a changé.
0 votes
Ne pas être frivole, mais j'évite délibérément TextEdit en raison de ses particularités en tant qu'éditeur de texte professionnel.
1 votes
@Allan Je l'évite aussi ! Mais il s'avère que ce comportement des fichiers RTF est également présent dans une autre application qui utilise les mêmes bibliothèques logicielles RTF sous-jacentes de macOS, et cette application est celle dans laquelle je vis essentiellement. La raison pour laquelle je demande à propos de TextEdit est parce qu'il est plus facile d'expliquer et de démontrer le problème.
0 votes
Quelles autres applications? Pour les documents textuels actuels, j'utilise Word. Pour tout le reste, j'utilise Visual Studio Code et précédemment Komodo Edit. Aucune de ces applications ne présente de problèmes avec les documents RTF.
0 votes
@Allan DEVONthink Pro semble avoir exactement le même problème avec les fichiers RTF.
1 votes
Et c'est aussi le cas des Notes Apple, bien que la police par défaut soit toujours la 'police système' 12pt.
0 votes
Si vous le voyez dans plusieurs applications qui utilisent le TextView de MacOS, alors il est presque certain qu'il s'agit d'un bug qui ne peut pas être configuré. Envoyez vos commentaires à Apple.
1 votes
Ce que @benwiggy a dit. Cela ressemble à un bug qui existe dans l'environnement d'édition de texte Cocoa. Envoyez vos commentaires à Apple sur apple.com/feedback/macos.html
0 votes
Il s'agit d'un bug et ce bug est présent depuis de nombreuses années dans de nombreuses versions de Mac OS X et macOS. Je ne peux pas dire exactement depuis quand, car je l'ai remarqué seulement lorsque j'ai commencé à définir mes préférences sur une taille de police supérieure à 12. Je soupçonne que ce bug est peut-être présent depuis que les documents .rtfd, c'est-à-dire les documents texte enrichis avec des pièces jointes, ont été introduits avec TextEdit.