将 NSTextView 限制为仅数字

Limit NSTextView to digits only

如何将 NSTextView 限制为仅显示数字? NSFormatter 不适用于 NSTextView,而且我在 NSTextStorage/NSTextContainer 上也找不到任何选项。

您可以响应委托方法

textView:shouldChangeTextInRange:replacementString: 然后检查键入的内容是否为数字(为此使用字符集)。如果是数字,return YES;如果没有,return NO.

或者将键盘类型更改为仅数字。

创建 NSTextView 的子类并覆盖

- (void)insertText:(id)string replacementRange:(NSRange)replacementRange

string 中去除非数字并调用 super.

覆盖

- (BOOL)readSelectionFromPasteboard:(NSPasteboard *)pboard type:(NSString *)type

捕捉粘贴和拖放。