123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- //
- // ManualToolbarViewController.swift
- // IQKeyboardManager
- //
- // Created by InfoEnum02 on 20/04/15.
- // Copyright (c) 2015 Iftekhar. All rights reserved.
- //
- import UIKit
- import IQKeyboardManagerSwift
- class ManualToolbarViewController: UIViewController, UIPopoverPresentationControllerDelegate {
- @IBOutlet var textField1: UITextField!
- @IBOutlet var textField2: UITextField!
- @IBOutlet var textView3: UITextView!
- @IBOutlet var textField4: UITextField!
- @IBOutlet var textField5: UITextField!
- deinit {
- textField1 = nil
- textField2 = nil
- textView3 = nil
- textField4 = nil
- textField5 = nil
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- textField1.addPreviousNextDoneOnKeyboardWithTarget(self, previousAction: #selector(self.previousAction(_:)), nextAction: #selector(self.nextAction(_:)), doneAction: #selector(self.doneAction(_:)), shouldShowPlaceholder: true)
- textField1.keyboardToolbar.previousBarButton.isEnabled = false
- textField1.keyboardToolbar.nextBarButton.isEnabled = true
- textField2.addPreviousNextDoneOnKeyboardWithTarget(self, previousAction: #selector(self.previousAction(_:)), nextAction: #selector(self.nextAction(_:)), doneAction: #selector(self.doneAction(_:)), shouldShowPlaceholder: true)
- textField2.keyboardToolbar.previousBarButton.isEnabled = true
- textField2.keyboardToolbar.nextBarButton.isEnabled = false
- textView3.addPreviousNextDoneOnKeyboardWithTarget(self, previousAction: #selector(self.previousAction(_:)), nextAction: #selector(self.nextAction(_:)), doneAction: #selector(self.doneAction(_:)), shouldShowPlaceholder: true)
- textField4.keyboardToolbar.titleBarButton.setTarget(self, action: #selector(self.titleAction(_:)))
- textField4.toolbarPlaceholder = "Saved Passwords"
- textField4.addDoneOnKeyboardWithTarget(self, action: #selector(self.doneAction(_:)), shouldShowPlaceholder: true)
- textField5.inputAccessoryView = UIView()
- }
- @objc func previousAction(_ sender: UITextField!) {
- if textField2.isFirstResponder {
- textView3.becomeFirstResponder()
- } else if textView3.isFirstResponder {
- textField1.becomeFirstResponder()
- }
- }
- @objc func nextAction(_ sender: UITextField!) {
- if textField1.isFirstResponder {
- textView3.becomeFirstResponder()
- } else if textView3.isFirstResponder {
- textField2.becomeFirstResponder()
- }
- }
- @objc func doneAction(_ sender: UITextField!) {
- self.view.endEditing(true)
- }
- @objc func titleAction(_ sender: UIButton) {
- let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
- alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
- alertController.addAction(UIAlertAction(title: "test@example.com", style: .default, handler: { (_: UIAlertAction) in
- self.textField4.text = "test"
- }))
- alertController.addAction(UIAlertAction(title: "demo@example.com", style: .default, handler: { (_: UIAlertAction) in
- self.textField4.text = "demo"
- }))
- alertController.popoverPresentationController?.sourceView = sender
- self.present(alertController, animated: true, completion: nil)
- }
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
- guard let identifier = segue.identifier else {
- return
- }
- if identifier == "SettingsNavigationController" {
- let controller = segue.destination
- controller.modalPresentationStyle = .popover
- controller.popoverPresentationController?.barButtonItem = sender as? UIBarButtonItem
- let heightWidth = max(UIScreen.main.bounds.width, UIScreen.main.bounds.height)
- controller.preferredContentSize = CGSize(width: heightWidth, height: heightWidth)
- controller.popoverPresentationController?.delegate = self
- }
- }
- func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
- return .none
- }
- func prepareForPopoverPresentation(_ popoverPresentationController: UIPopoverPresentationController) {
- self.view.endEditing(true)
- }
- override var shouldAutorotate: Bool {
- return true
- }
- }
|