Как ввести текст в конкретный TextField при использовании в проекте event.keyCode

В проекте используется слушатель клавиатуры. При создании текстового поля TextField невозможно ввести текст. В функции registerKeyHandler() специально установлен return nil а не return $0 - отключаю звуки от клавиатуры. Вопрос: Как для конкретного TextField сделать ввод текста?

import SwiftUI
import Foundation
import Carbon

class Answer: ObservableObject, Identifiable {
    let id = UUID()
    @Published var answerYes: Bool?
    @Published var circleStroke: Bool
    
    init(answerYes: Bool?, circleStroke: Bool) {
        self.answerYes = answerYes
        self.circleStroke = circleStroke
    }
}

class Answers: ObservableObject  {
    @Published var items = [Answer]()
    
    init(_ items: [Answer]) {
        self.items = items
    }
}

struct ContentView: View {
    
    @ObservedObject var answers: Answers
    
    @State var firstName = ""
    @State var secondName = ""
    
    var body: some View {
        VStack {
            Spacer()
            HStack {
                ForEach(answers.items) { item in
                    CircleView(answer: item)
                }
            }
            .frame(width: 600, height: 200, alignment: .center)
            
            Spacer()
            
            TextField("Ваше Имя", text: $firstName)
                .frame(width: 200, height: 30)
            TextField("Ваша Фамилия", text: $secondName)
                .frame(width: 200, height: 30)
            
            Button("СОХРАНИТЬ") {
                // action
            }
            
            Spacer()
            
            Text("Перемещение по вопросам: Курсор <- -> ")
            Text("Ответ на вопрос клавиши: 1 - Yes, 2 - No ")
            
            
            Spacer()
        }
    }
}


struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView(answers: Answers([]))
    }
}

struct CircleView: View {
    
    @ObservedObject var answer: Answer

    var body: some View {
        VStack {
            Text("Вопрос:")
                .padding(.bottom, 60)
            // buttons
            HStack {
                HStack {
                    Button("Yes") {
                        answer.answerYes = true
                    }
                    Button("No") {
                        answer.answerYes = false
                    }
                }
            }
            // circle
            ZStack {
                Circle()
                    .fill(Color(#colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)))
                    .frame(width: 120, height: 120)
                    .shadow(color: .black, radius: 2, x: 3, y: 3)
                    .opacity(answer.circleStroke ? 1 : 0)
                Circle()
                    .fill(Color.yellow)
                    .frame(width: 100, height: 100)
                    .shadow(color: .black, radius: 2, x: 3, y: 3)
                Text(answer.answerYes == nil ? "" : answer.answerYes! ? "yes" : "no")
                    .foregroundColor(Color(#colorLiteral(red: 0.8039215686, green: 0.5215686275, blue: 0.09803921569, alpha: 1)))
                    .font(.system(size: 40))
                    .offset(y: -5)
                    .opacity(answer.answerYes == nil ? 0 : 1)
            }
        }
    }
}

AppDelegate

import Cocoa
import SwiftUI

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    var window: NSWindow!
    var handler: AnswerKeysHandler!
    // Количество кругов в массиве:
    var circleCount = 4



    func applicationDidFinishLaunching(_ aNotification: Notification) {
        
        // Массив кругов
        var circles: [Answer] = []
        // Добавляем в массив
        for _ in 0..<circleCount {
            let add = Answer(answerYes: nil, circleStroke: false)
            circles.append(add)
        }
        circles[0].circleStroke = true
        print(circles.count)
        
        
        let answer1 = Answers(circles)
        
        
        let contentView = ContentView(answers: answer1)
        handler = AnswerKeysHandler(answers: answer1)

        // Create the window and set the content view.
        window = NSWindow(
            contentRect: NSRect(x: 0, y: 0, width: 480, height: 300),
            styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
            backing: .buffered, defer: false)
        window.isReleasedWhenClosed = false
        window.center()
        window.setFrameAutosaveName("Main Window")
        window.contentView = NSHostingView(rootView: contentView)
        window.makeKeyAndOrderFront(nil)
    }

    func applicationWillTerminate(_ aNotification: Notification) {
        // Insert code here to tear down your application
    }
}

AnswerKeysHandler

import SwiftUI
import Foundation
import Carbon

var currentCircle = 0

struct AnswerKeysHandler {
    
    @ObservedObject var answers: Answers
    
    init(answers: Answers) {
        self.answers = answers
        registerKeysHandler()
    }
    
    private func registerKeysHandlerEnter() {
        NSEvent.addLocalMonitorForEvents(matching: .keyDown) {
            self.keyDown(with: $0)
            return $0
        }
    }
    
    
    private func registerKeysHandler() {
        
        NSEvent.addLocalMonitorForEvents(matching: .keyDown) {
            self.keyDown(with: $0)
            return nil
        }
        NSEvent.addLocalMonitorForEvents(matching: .keyUp) {
            self.keyUp(with: $0)
            return nil
        }
        
    }
    
        
    private func keyUp(with event: NSEvent) {
    }
    private func keyDown(with event: NSEvent) {
        
        
        switch event.keyCode {
        case 123:
            currentCircle -= 1
            
            for index in answers.items {
                index.circleStroke = false
            }
            
            if currentCircle <= answers.items.endIndex && currentCircle >= 0 {
                answers.items[currentCircle].circleStroke = true
            } else {
                currentCircle = answers.items.endIndex - 1
                answers.items[currentCircle].circleStroke = true
            }
            
        case 124:
            currentCircle += 1
            
            for index in answers.items {
                index.circleStroke = false
            }
            
            if currentCircle < answers.items.endIndex {
                answers.items[currentCircle].circleStroke = true
            } else {
                currentCircle = 0
                answers.items[currentCircle].circleStroke = true
            }
            
        case 18:
            answers.items[currentCircle].answerYes = true
        case 19:
            answers.items[currentCircle].answerYes = false
            
        default:
            print("key pressed with code \(event.keyCode)")
        }
        
    }
    
}

Ответы (0 шт):