Wes*_*loy 1 macos cocoa interface-builder
在Interface Builder中,我有一个不可编辑的标签(NSTextField)。标签的内容是使用Cocoa绑定创建的。绑定的值是NSAttributedString(使用talue转换器创建的)。见图片:
值转换器实质上按照Markdown格式(即,斜体和粗体)为特定字符指定字体。这样String-> NSAttributedString。标签的attributedStringValue已适当更改
在UI中选择标签时。字体重置为IB中指定的字体,而不是设置为的字体NSAttributedString。如果您不选择文本,那么一切看起来都会很好。
在点击标签之前:
单击/选择标签后:
NSTextField但是没有真正要覆盖的东西,它使我可以在选择文本时禁用任何字体更改。NSTextViews not NSTextFields 存在的大多数类似问题您需要设置allowEditingTextAttributes = true
例如:
class ViewController: NSViewController {
dynamic var markdownText : String?
@IBOutlet weak var label: NSTextField!
override func viewDidLoad() {
super.viewDidLoad()
label.allowsEditingTextAttributes = true
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以像我的示例一样选择文本:
这是代码:https : //github.com/emankovski/BindingFormattedText