Я пытаюсь сделать так, чтобы NSTextField
принимал только числа и периоды, такие как 12.4
и 3.6
в приложении Mac.Принудительно NSTextField принимать только десятичные числа (#. #) Числа и периоды
Я чувствую, что становлюсь довольно близко после рассмотрения других вопросов, но я не могу это получить. Приведенный ниже код работает, за исключением того, что он не разрешает .
символов. Он возвращает true
и не подает звуковой сигнал, когда я набираю .
, но он не позволит символу появиться в поле.
class decimalFormatter: NumberFormatter {
override func isPartialStringValid(_ partialString: String, newEditingString newString: AutoreleasingUnsafeMutablePointer<NSString?>?, errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>?) -> Bool {
//Allows the text to be deleted
if partialString.isEmpty {
return true
}
//Check for #.# numbers
let charSet = NSCharacterSet(charactersIn: "1234567890.").inverted
if partialString.rangeOfCharacter(from: charSet) != nil{
NSBeep()
return false
}else{
return true
}
}
}
Любая идея, что я делаю неправильно?
http://stackoverflow.com/a/39458375/2303865 –