SWIFT:Nstextfield仅允许指定的字符

Cor*_*ini 5 nstextfield swift

我需要有人向我展示如何在swift中允许nstexfield中的特定字符.例如,当用户尝试输入不在列表中的字符时,nstexfield将不会在字段中显示该字符.非常简单.有许多IOS示例,但找不到OSX示例.

Kor*_*and 7

首先将NSTextFieldDelegate添加到您的类......然后

添加这个:

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

你必须用自己想要控制的文本字段替换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: "")
}
Run Code Online (Sandbox Code Playgroud)