【发布时间】:2012-10-06 20:28:36
【问题描述】:
我有一个NSTextView,我有一个自定义的NSFormatter,它限制了字符串长度。但是我如何在NSTextView 上“[_textView setFormatter:customFormatter]”?我找不到如何做到这一点。
示例代码将不胜感激!
【问题讨论】:
标签: objective-c xcode macos nstextview nsformatter
我有一个NSTextView,我有一个自定义的NSFormatter,它限制了字符串长度。但是我如何在NSTextView 上“[_textView setFormatter:customFormatter]”?我找不到如何做到这一点。
示例代码将不胜感激!
【问题讨论】:
标签: objective-c xcode macos nstextview nsformatter
无法将自定义 NSFormatter 与 NSTextView 一起使用。 (这似乎是 NSControl 的领域,NSTextField 是其中的一个子类。)
但是,可以为您的文本视图的文本存储设置一个委托 (NSTextStorage),并实现 -textStorageWillProcessEditing:(NSTextStorageDelegate 的方法);这是您可以限制用户输入的地方。您的自定义 NSFormatter 的现有代码可能适合在那里使用。
【讨论】:
-textStorageWillProcessEditing: 实现相同的效果?
NSMutableAttributedString 的子类 - 将length 消息传递给它),并采取相应的行动。