Select next NSTextField with Tab key in Swift Select next NSTextField with Tab key in Swift xcode xcode

Select next NSTextField with Tab key in Swift


You have to connect your textField nextKeyView to the next textField through the IB or programmatically:

textField1.nextKeyView = textField2

enter image description here


Assuming you want to go from textView1 to textView2. First set the delegate:

self.textView1.delegate = self

Then implement the delegate method:

func textView(textView: NSTextView, doCommandBySelector commandSelector: Selector) -> Bool {    if commandSelector == "insertTab:" && textView == self.textView1 {        self.window.makeFirstResponder(self.textView2)        return true    }    return false}


If you want some control over how your field tabs or moves with arrow keys between fields in Swift, you can add this to your delegate along with some move meaningful code to do the actual moving like move next by finding the control on the superview visibly displayed below or just to the right of the control and can accept focus.

 public func control(_ control: NSControl, textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool {        switch commandSelector {        case #selector(NSResponder.insertTab(_:)), #selector(NSResponder.moveDown(_:)):            // Move to the next field            Swift.print("Move next")            return true        case #selector(NSResponder.moveUp(_:)):            // Move to the previous field            Swift.print("Move previous")            return true        default:            return false        }        return false // I didn't do anything    }