diff --git a/README.md b/README.md index 22e0ea3..36cfdcc 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,8 @@ Color(nsuiColor: NSUIColor) Image(nsuiImage: NSUIImage) // AppKit/UIKit +NSUIFont.init(nsuiDescriptor:, size:) +NSUIFontDescriptor.nsuiWithSymbolicTraits(_:) NSUITextView.nsuiLayoutManager ``` diff --git a/Sources/NSUI/Font.swift b/Sources/NSUI/Font.swift new file mode 100644 index 0000000..44ad78f --- /dev/null +++ b/Sources/NSUI/Font.swift @@ -0,0 +1,30 @@ +#if canImport(AppKit) && !targetEnvironment(macCatalyst) +import AppKit + +extension NSUIFontDescriptor.SymbolicTraits { + public static let traitItalic = Self.italic + public static let traitBold = Self.bold + public static let traitExpanded = Self.expanded + public static let traitCondensed = Self.condensed + public static let traitMonoSpace = Self.monoSpace +} + +#endif + +extension NSUIFontDescriptor { + /// NSUI wrapper around `withSymbolicTraits`. + /// + /// This can return a nil value on iOS/visionOS. + public func nsuiWithSymbolicTraits(_ symbolicTraits: NSUIFontDescriptor.SymbolicTraits) -> NSUIFontDescriptor? { + withSymbolicTraits(symbolicTraits) + } +} + +extension NSUIFont { + /// NSUI wrapper around `init`. + /// + /// This initializer can fail on macOS. + public convenience init?(nsuiDescriptor: NSUIFontDescriptor, size: CGFloat) { + self.init(descriptor: nsuiDescriptor, size: size) + } +} diff --git a/Sources/NSUI/FontDescriptor.swift b/Sources/NSUI/FontDescriptor.swift deleted file mode 100644 index fb9e3f7..0000000 --- a/Sources/NSUI/FontDescriptor.swift +++ /dev/null @@ -1,12 +0,0 @@ -#if canImport(AppKit) && !targetEnvironment(macCatalyst) -import AppKit - -extension NSUIFontDescriptor.SymbolicTraits { - public static let traitItalic = Self.italic - public static let traitBold = Self.bold - public static let traitExpanded = Self.expanded - public static let traitCondensed = Self.condensed - public static let traitMonoSpace = Self.monoSpace -} - -#endif