I would like to create a reusable view that embeds a TextField and a visual indicator (underline Rectangle) view that changes color when the TextField is editing (i.e. has focus).
In an example container view, I may have several of these reusable views, and I'm using the FocusState pattern like so:
private enum FocusedField {
case first
case second
case third
}
@FocusState private var focusedField: FocusedField?
MyCustomTextField(...)
.focused($focusedField, equals: .second)
In general, this works. Focus will shift to the custom text field even though it's inside a container view with the TextField and a Rectangle(...). (Not really sure I understand how this is working, tbh)
However, I don't know how to generically have the Rectangle change color based on whether or not the associated TextField has focus.
The rectangle is just:
Rectangle()
.fill(isFocused ? Color.blue : Color.gray)
.frame(maxWidth: .infinity, minHeight: 2, maxHeight: 2)
.padding(.horizontal)
Any guidance appreciated.

