AttributedString отображается в SwiftUI иначе, чем в AppKit.
У меня странная проблема при рисовании
NSAttributedStrings
в SwiftUI. По сравнению с отображением в AppKit символы SwiftUI на 1 пункт меньше. Чтобы отобразить строку в SwiftUI, я должен использовать, но не имеет значения, визуализирую ли я представление в
draw()
из
NSView
или используйте
NSTextField
чтобы отобразить это. Я должен использовать, так как я также должен использовать цвета CMYK. Используемый шрифт - «The Sans Mono-W8 ExtraBold».
В качестве примера:
SwiftUI-Version находится слева, AppKit - справа.
Кодекс для
NSViewRepresentable
довольно просто:
public struct AttrStringView: NSViewRepresentable {
let attributedString: NSAttributedString
public func makeNSView(context: NSViewRepresentableContext<Self>) -> NSTextField {
NSTextField()
}
public func updateNSView(_ textField: NSTextField, context: Context) {
textField.attributedStringValue = attributedString
}
}
И в
AppKit
код для установки AttributedString прост:
textField.attributedStringValue = attributedString
Может ли кто-нибудь указать мне на подсказку? Или это ошибка?
1 ответ
Вы явно устанавливаете размер шрифта на стороне SwiftUI или NSViewRepresentable? Размеры по умолчанию могут отличаться. Попробуйте установить одинаковый размер шрифта для обоих.