I have this code which is working correctly. However I would like to simplify the code to make it much more streamlined.
import Cocoa class ViewController: NSViewController, NSTextFieldDelegate { @IBOutlet weak var TF1: NSTextField! @IBOutlet weak var TF2: NSTextField! @IBOutlet weak var TF3: NSTextField! @IBOutlet weak var Bt1: NSButton! @IBOutlet weak var Bt2: NSButton! var activeTextField = NSTextField() override func viewDidLoad() { super.viewDidLoad() TF1.delegate = self TF2.delegate = self TF3.delegate = self } @IBAction func Bt1Pressed(_ sender: NSButton) { if TF1.currentEditor()?.selectedRange.length == 0{ TF1.stringValue = "B1 Pressed" print("IS SeletedAll") } if TF2.currentEditor()?.selectedRange.length == 0{ TF2.stringValue = "B1 Pressed" print("IS SeletedAll") } if TF3.currentEditor()?.selectedRange.length == 0{ TF3.stringValue = "B1 Pressed" print("IS SeletedAll") } } @IBAction func Bt2Pressed(_ sender: NSButton) { if TF1.currentEditor()?.selectedRange.length == 0{ TF1.stringValue = "B2 Pressed" print("IS SeletedAll") } if TF2.currentEditor()?.selectedRange.length == 0{ TF2.stringValue = "B2 Pressed" print("IS SeletedAll") } if TF3.currentEditor()?.selectedRange.length == 0{ TF3.stringValue = "B2 Pressed" print("IS SeletedAll") } } override var representedObject: Any? { didSet { // Update the view, if already loaded. } } }
My thought was to some how set activeTextField with the selected field and then be able to pass the value back to the correct field with something like this.
@IBAction func Bt1Pressed(_ sender: NSButton) { if activeTextfield.currentEditor()?.selectedRange.length == 0 { activeTextfield.stringValue = "B1 Pressed" } }