ViewController.swift 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import Cocoa
  2. import KeychainSwift
  3. let TegKeychainDemo_keyName = "my key"
  4. class ViewController: NSViewController {
  5. @IBOutlet weak var textField: NSTextField!
  6. @IBOutlet weak var valueLabel: NSTextField!
  7. @IBOutlet weak var errorLabel: NSTextField!
  8. @IBOutlet weak var synchronizableButton: NSButton!
  9. let keychain = KeychainSwift()
  10. override func viewDidLoad() {
  11. super.viewDidLoad()
  12. updateValueLabel()
  13. errorLabel.stringValue = ""
  14. }
  15. // override var representedObject: Any? {
  16. // didSet {
  17. // // Update the view, if already loaded.
  18. // }
  19. // }
  20. @IBAction func onSaveTapped(_ sender: AnyObject) {
  21. keychain.synchronizable = synchronizableButton.state == NSControl.StateValue.on
  22. keychain.set(textField.stringValue, forKey: TegKeychainDemo_keyName)
  23. errorLabel.stringValue = "Result code: \(keychain.lastResultCode)"
  24. updateValueLabel()
  25. }
  26. @IBAction func onDeleteTapped(_ sender: AnyObject) {
  27. keychain.synchronizable = synchronizableButton.state == NSControl.StateValue.on
  28. keychain.delete(TegKeychainDemo_keyName)
  29. errorLabel.stringValue = "Result code: \(keychain.lastResultCode)"
  30. updateValueLabel()
  31. }
  32. @IBAction func onGetTapped(_ sender: AnyObject) {
  33. updateValueLabel()
  34. }
  35. private func updateValueLabel() {
  36. keychain.synchronizable = synchronizableButton.state == NSControl.StateValue.on
  37. if let value = keychain.get(TegKeychainDemo_keyName) {
  38. valueLabel.stringValue = "In Keychain: \(value)"
  39. } else {
  40. valueLabel.stringValue = "no value in keychain"
  41. }
  42. }
  43. }