SWIFT:Nstextfield 只允许指定的字符

标签 swift nstextfield

我需要有人告诉我如何快速允许 nstexfield 中的特定字符。例如,当用户尝试输入不在列表中的字符时,nstexfield 将不会在字段中显示该字符。非常简单。那里有很多 IOS 示例,但找不到 OSX 示例。

最佳答案

首先添加一个 NSTextFieldDelegate 到你的类中......然后

添加这个:

 override func controlTextDidChange(obj: NSNotification) {
    let characterSet: NSCharacterSet = NSCharacterSet(charactersInString: " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ0123456789-_").invertedSet
    self.textField.stringValue = (self.textField.stringValue.componentsSeparatedByCharactersInSet(characterSet) as NSArray).componentsJoinedByString("")
}

您必须将 self.textfield 替换为您自己想要控制的文本字段。

SWIFT 4 编辑

 override func controlTextDidChange(_ obj: Notification) {
    let characterSet: NSCharacterSet = NSCharacterSet(charactersIn: " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ0123456789-_").inverted as NSCharacterSet
    self.textField.stringValue =  (self.textField.stringValue.components(separatedBy: characterSet as CharacterSet) as NSArray).componentsJoined(by: "")
}

关于SWIFT:Nstextfield 只允许指定的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35381540/

相关文章:

objective-c - 如何更改自定义 NSTextfield 的绘制矩形内的文本颜色

objective-c - 选择 NSTextField 时字体更改

objective-c - objective-c 代码的 Swift 包管理器

swift - 使用 UIScrollview 和 UICollectionView 滚动整个屏幕

cocoa - 根据 NSTextField 中的行高设置字体大小

objective-c - 按下Enter时如何使NSTextfield失去焦点?

objective-c - 如何使可编辑的 TextField 在单击按钮时失去焦点?

swift - 无法使用 Realm 存档 Swift OSX 应用程序

ios - 如何使用coredata每次从表中获取10条记录

ios - UICollectionView 页眉和页脚 View