Skip to main content

Swift API Manager -Alamofire-Refresh Token-With TestCases

  import Foundation import KeychainAccess enum APIError : Error { case accessTokenExpired case networkError // Add more error cases as needed } class APIManager { private let keychain = Keychain (service: "com.example.app.refreshToken" ) private let refreshTokenKey = "refreshToken" private var accessToken: String ? func callAPI < T : Codable >( urlString : String , method : String , parameters : [ String : Any ] ? , completion : @escaping ( Result < T , APIError >) -> Void ) { guard let url = URL (string: urlString) else { completion(.failure(.networkError)) return } var request = URLRequest (url: url) request.httpMethod = method // Add access token to the request headers if available if let token = accessToken { request.setValue( "Bearer \(token) " , forHTTPHeaderField: "Aut...

How to show And dismiss keyboard iOS programmatically with Swift in iOS app.

1. Dismiss keyboard with Keyboard Return key

Dismiss Keyboard with Swift in iOS app



override func viewDidLoad() {

        super.viewDidLoad()

        textfield.delegate = self

        // Do any additional setup after loading the view.

    }

    

  func textFieldShouldReturn(_ textField: UITextField) -> Bool {

        

        textField.resignFirstResponder()

        

        return true

        

    }

2. Dismiss keyboard with Tap Any in View Controller 

  • Using touchesBegan

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

        super.touchesBegan(touches,

                           with: event)

        self.view.endEditing(true)

    }

  • Using a Tap gesture

let tapGesture = UITapGestureRecognizer(target: self,

                                            action: #selector(hideKeyboard))

    tapGesture.cancelsTouchesInView = false

    self.view.addGestureRecognizer(tapGesture)


    @objc

    private func hideKeyboard() {

        self.view.endEditing(true)

    }


3. Dismiss keyboard with Scroll

let tableview = UITableView(frame: self.view.bounds)

    tableview.delegate = self

    tableview.dataSource = self

    tableview.keyboardDismissMode = .onDrag

   



Comments

Post a Comment