我正在为 iOS 应用程序设置密码屏幕。我使用单个文本字段来设置密码和确认密码。我在为这两个值设置标志并验证它们时遇到困难。
func handleInput(str: String)
{
if txtField.text?.characters.count == 4
{
print("Set Passcode: \(txtField.text!)")
let myValue:NSString = txtField.text!
NSUserDefaults.standardUserDefaults().setObject(myValue, forKey:"Username1")
NSUserDefaults.standardUserDefaults().synchronize()
print(" Value1 \(myValue)")
resignFirstResponder()
label.text? = "Confirm Passcode"
txtField.text = ""
不要忘记导入 UITextFieldDelegate
,如下面的代码所示。你可以这样做:
class File2: UIViewController, UITextFieldDelegate{
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var label: UILabel!
var i = 0
var password = ""
var confirmPassword = ""
override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = self
textField.secureTextEntry = true
}
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let newLength = count(textField.text.utf16) + count(string.utf16) - range.length
if newLength == 4{
if i == 0{
password = textField.text!
textField.text = ""
textField.placeholder = "Confirm Password"
i+=1
}
else if i == 1{
confirmPassword = textField.text!
textField.text = ""
i = 0
if confirmPassword == password{
// save the password... (Your Code)
// I know userdefaults is not a good way to store passwords, but for tutorial purposes, it's OK.
NSUserDefaults.standardUserDefaults.setValue(password, forKey: "password")
print("Account Succesfully Created With Password: \(password)!")
}
}
}
return newLength <= 4
return true
}
}
读取密码:
查看关于 Stack Overflow 的 UserDefaults
文档。