Font, Swift et Objective-C

Bonjour à tous,

À partir de l’appli Bloc Notes de Maxime, j’ai voulu mettre le texte du label en italique. J’ai trouvé cette solution :

  self.label.font = UIFont.italicSystemFont(ofSize: self.label.font.pointSize) 

En cliquant sur l’aide de UIFont, j’ai trouvé une référence à preferredFont(forTextStyle:). Mais l’aide précise que preferredFont(forTextStyle:) n’est accessible qu’en Objective-C.

J’ai lu à plusieurs reprises que Swift et Objective-C pouvaient cohabiter dans un même projet. Y a-t-il un moyen simple de faire appel à preferredFont(forTextStyle:) dans un projet à la création duquel on a indiqué Swift comme langage ?

??? T’as lu ça où ?

Etant donné que les UIquelqueChose ne dépendent pas du langage de programmation, mais de l’API UIKit, il serait plus qu’étonnant que cela ne fonctionne pas en Swift.

D’ailleurs, il n’y a rien d’indiqué de tel dans la documentation Apple :

https://developer.apple.com/documentation/uikit/uifont/1771762-preferredfont

Le moyen le plus simple de vérifier, c’est de commencer à taper le nom de la fonction dans Xcode, pour voir ce que le système de complétion vas afficher. Et … oh … surprise :

Mauvaise interprétation de ma part : quand on affiche l’aide rapide associée à « UIFont » :

et qu’on clique ensuite sur le lien vers preferredFont(forTextStyle:), une nouvelle fenêtre apparaît :

Le fait que en-dessous de « Language », Swift soit en noir et Objective-C en bleu m’a fait croire, à tort, que preferredFont n’était disponible que pour Objective-C.

Merci pour ta réponse, qui a eu le mérite de me faire comprendre que le bleu correspond à un lien, que la doc est commune aux 2 langages, et que les liens vers Swift ou Objective-C permettent de basculer d’un langage à l’autre.

Cela m’évitera de nombreuses pertes de temps dans les jours et semaines à venir :blush:

La doc Apple est parfois obscure.

Au bout d’un moment, on doit s’y faire, enfin j’espère !

  • croise les doigts *