0

次の関数を使用して、テキスト ボックスにコピー アンド ペースト機能を実装しました。

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
var result = true
let prospectiveText = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string)

if textField == numberField {
  if count(string) > 0 {
  let disallowedCharacterSet = NSCharacterSet(charactersInString: "0123456789").invertedSet
  let replacementStringIsLegal = string.rangeOfCharacterFromSet(disallowedCharacterSet) == nil

  let resultingStringLengthIsLegal = count(prospectiveText) <= 6

  let scanner = NSScanner(string: prospectiveText)
  let resultingTextIsNumeric = scanner.scanDecimal(nil) && scanner.atEnd

  result = replacementStringIsLegal &&
           resultingStringLengthIsLegal &&
           resultingTextIsNumeric
  }
}
return result
}

これは適切に機能します。しかし、テキスト ボックスに何かを貼り付けて [戻る] ボタンをクリックすると、セグエ アプリがクラッシュし、次のエラーが発生します。

ここに画像の説明を入力

セグエの巻き戻しのコード:

@IBAction func unwindfromO(segue: UIStoryboardSegue) {


}
4

0 に答える 0