#if !os(macOS) /** An extension to ``UIFont`` that adds a custom implementation of `fontNames(forFamilyName:)` that supports aliasing font families. */ public extension UIFont { /** Returns an array of font names for the specified family name or its alias. */ @objc static dynamic func _expo_fontNames(forFamilyName familyName: String) -> [String] { // Get font names from the original function. let fontNames = UIFont._expo_fontNames(forFamilyName: familyName) // If no font names were found, let's try with the alias. if fontNames.isEmpty, let postScriptName = FontFamilyAliasManager.familyName(forAlias: familyName) { let fontNames = UIFont._expo_fontNames(forFamilyName: postScriptName) // If we still don't find any font names, we can assume it was not a family name but a font name. // In that case we can safely return the original font name. if fontNames.isEmpty { return [postScriptName] } return fontNames } return fontNames } } #endif