cocoa - NSTextView textDidChange/didChangeText 未调用绑定(bind)

标签 cocoa cocoa-bindings nstextview

我有一个自定义的 NSTextView 实现,可以自动调整字体大小,以便文本填充整个 View 。

我重写了 didChangeText 来调用我的字体大小调整方法。当用户编辑文本时效果很好,但是当通过绑定(bind)设置 TextView 内容时,不会调用 didChangeText (和委托(delegate)方法 textDidChange:)。

每当设置/更改文本时,字体调整代码都需要运行,而不仅仅是当用户更改文本时。

如何检测 NSTextView 中文本的所有更改,甚至通过绑定(bind)?

注意:如果除了增加字体大小之外还有更好的方法让文本填充整个 TextView ,请告诉我。

最佳答案

最好将字体属性设置到绑定(bind)到 TextView 的“attributedString”的NSAttributedString中。在 textDidChange: 委托(delegate)方法中,您只需使用正确的字体属性重新创建 NSAttributedString 即可。

关于cocoa - NSTextView textDidChange/didChangeText 未调用绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13875915/

相关文章:

objective-c - 绑定(bind)未更新。看不出出了什么问题

objective-c - 如何使 Tab 键将焦点移出 NSTextView?

cocoa - NSPredicateEditorRowTemplate : how to to populate right side popup

objective-c - 使用 SMJobBless() 编写特权帮助工具

swift - 将 Swift 中的属性绑定(bind)到 NSTextFields

cocoa - NSPersistentDocument 中的 NSTextView 在失去第一响应者之前不会更新脏标志

cocoa - 保存用户的硬币数量

cocoa-touch - os x 相当于ios的rootViewController

cocoa - NSTextView 添加 URL 链接到选定的文本?

cocoa - 在 NSTextView 中替换 NSTextStorage 的正确方法?