2016-04-24 10 views
-5

Ich bin jetzt für eine Weile festgefahren und ich frage mich, was ist der beste Weg, um ein Textfeld für ein Kreditkartenformat zu formatieren?Swift - Textfeld für eine Kreditkarte formatieren

+0

dies ist eine Meinung, basierend Frage ... keine allgemeine Antwort möglich ... auch mehr Code geben Sie bitte und was Sie haben tryed soweit und was nicht funktioniert oder nicht, was du erwartest. Stackoverflow ist kein Codierdienst. –

+1

Wenn Sie das nächste Mal das Gefühl haben, bei einem Problem stecken zu bleiben, verwenden Sie Google, http://stackoverflow.com/questions/12083605/formatting-a-uitxtfield-for-creditcard-input-like-xxxx-xxxx-xxxx- xxxx –

Antwort

0

Sie können Caishen Rahmen verwenden.

Es aktualisiert den Inhalt des Textfeldes nach jeder bearbeiten Sie diese Funktion verwenden:

public func formattedCardNumber(cardNumberString: String) -> String { 
     let regex: NSRegularExpression 

     let cardType = cardTypeRegister.cardTypeForNumber(Number(rawValue: cardNumberString)) 
     do { 
      let groups = cardType.numberGrouping 
      var pattern = "" 
      var first = true 
      for group in groups { 
       pattern += "(\\d{1,\(group)})" 
       if !first { 
        pattern += "?" 
       } 
       first = false 
      } 
      regex = try NSRegularExpression(pattern: pattern, options: NSRegularExpressionOptions()) 
     } catch { 
      fatalError("Error when creating regular expression: \(error)") 
     } 

     return NSArray(array: self.splitString(cardNumberString, withRegex: regex)).componentsJoinedByString(self.separator) 
    }