如何将自定义NSFormatter设置为NSTextView?
问题描述:
我有一个NSTextView
和我有一个自定义NSFormatter
限制字符串的长度。但是,如何在NSTextView
上“[_textView setFormatter:customFormatter]
”?我找不到如何做到这一点。
示例代码将不胜感激!如何将自定义NSFormatter设置为NSTextView?
答
不可能在NSTextView中使用自定义的NSFormatter。 (这似乎是的NSControl省,其中的NSTextField是一个子类)。
然而,是可以建立一个委托为您的文本视图的文本存储(NSTextStorage
),并实现-textStorageWillProcessEditing:
(方法NSTextStorageDelegate
);这是您可以约束用户输入的地方。您现有的自定义NSFormatter代码可能适合在那里使用。
谢谢,但我有一个问题:在NSFormatter上,我使用此代码http://pastebin.com/NYFc5AnN使最大长度为256.我怎样才能达到相同的'-textStorageWillProcessEditing:'? –
@PedroVieira你可以在文本存储器中获得文本的长度(这是'NSMutableAttributedString'的一个子类 - 将'length'消息传递给它),并相应地执行。 – trudyscousin
你能给我一个快速的例子吗?我没有达到我想要的。 –