Learn-iOS-Swift-by-Examples/UICatalog/Swift/UIKitCatalog/TextFieldViewController.swift

120 lines
4.3 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Copyright (C) 2016 Apple Inc. All Rights Reserved.
See LICENSE.txt for this samples licensing information
Abstract:
A view controller that demonstrates how to use UITextField.
*/
import UIKit
class TextFieldViewController: UITableViewController, UITextFieldDelegate {
// MARK: - Properties
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var tintedTextField: UITextField!
@IBOutlet weak var secureTextField: UITextField!
@IBOutlet weak var specificKeyboardTextField: UITextField!
@IBOutlet weak var customTextField: UITextField!
// Mark: View Life Cycle
override func viewDidLoad() {
super.viewDidLoad()
configureTextField()
configureTintedTextField()
configureSecureTextField()
configureSpecificKeyboardTextField()
configureCustomTextField()
}
// MARK: - Configuration
func configureTextField() {
textField.placeholder = NSLocalizedString("Placeholder text", comment: "")
textField.autocorrectionType = .Yes
textField.returnKeyType = .Done
textField.clearButtonMode = .Never
}
func configureTintedTextField() {
tintedTextField.tintColor = UIColor.applicationBlueColor
tintedTextField.textColor = UIColor.applicationGreenColor
tintedTextField.placeholder = NSLocalizedString("Placeholder text", comment: "")
tintedTextField.returnKeyType = .Done
tintedTextField.clearButtonMode = .Never
}
func configureSecureTextField() {
secureTextField.secureTextEntry = true
secureTextField.placeholder = NSLocalizedString("Placeholder text", comment: "")
secureTextField.returnKeyType = .Done
secureTextField.clearButtonMode = .Always
}
/**
There are many different types of keyboards that you may choose to use.
The different types of keyboards are defined in the `UITextInputTraits` interface.
This example shows how to display a keyboard to help enter email addresses.
*/
func configureSpecificKeyboardTextField() {
specificKeyboardTextField.keyboardType = .EmailAddress
specificKeyboardTextField.placeholder = NSLocalizedString("Placeholder text", comment: "")
specificKeyboardTextField.returnKeyType = .Done
}
func configureCustomTextField() {
// Text fields with custom image backgrounds must have no border.
customTextField.borderStyle = .None
customTextField.background = UIImage(named: "text_field_background")
/*
Create a purple button that, when selected, turns the custom text field's
text color to purple.
*/
let purpleImage = UIImage(named: "text_field_purple_right_view")!
let purpleImageButton = UIButton(type: .Custom)
purpleImageButton.bounds = CGRect(x: 0, y: 0, width: purpleImage.size.width, height: purpleImage.size.height)
purpleImageButton.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 5)
purpleImageButton.setImage(purpleImage, forState: .Normal)
purpleImageButton.addTarget(self, action: #selector(TextFieldViewController.customTextFieldPurpleButtonClicked), forControlEvents: .TouchUpInside)
customTextField.rightView = purpleImageButton
customTextField.rightViewMode = .Always
// Add an empty view as the left view to ensure inset between the text and the bounding rectangle.
let leftPaddingView = UIView(frame: CGRect(x: 0, y: 0, width: 10, height: 0))
leftPaddingView.backgroundColor = UIColor.clearColor()
customTextField.leftView = leftPaddingView
customTextField.leftViewMode = .Always
customTextField.placeholder = NSLocalizedString("Placeholder text", comment: "")
customTextField.autocorrectionType = .No
customTextField.returnKeyType = .Done
}
// MARK: - UITextFieldDelegate
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
// MARK: - Actions
func customTextFieldPurpleButtonClicked() {
customTextField.textColor = UIColor.applicationPurpleColor
NSLog("The custom text field's purple right view button was clicked.")
}
}