2015-11-19 37 views
0

必要從十進制墊鍵盤進入的UITextField時:禁止進入

  1. 替換點逗號
  2. 禁用兩個點

我做到了的輸入,但這些條件彼此衝突:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 

if string == "," { 
    textField.text! += "." 
    return false 
} 

let dotsCount = textField.text!.componentsSeparatedByString(".").count - 1 
    if dotsCount > 0 && string == "." { 
    return false 
} 
return true 
} 

請幫忙做出決定

+0

什麼您介紹的兩點意思?避免字符串包含兩個點? – Cesare

+0

我很抱歉。 是的,我想避免該字符串包含兩個點 – Yevheniy

+0

但一個點會好嗎? –

回答

2

的決定是表面

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 

    let dotsCount = textField.text!.componentsSeparatedByString(".").count - 1 
    if dotsCount > 0 && (string == "." || string == ",") { 
     return false 
    } 

    if string == "," { 
     textField.text! += "." 
     return false 
    } 

    return true 
}