So to complement Kuba's answer, digging in the CloudObject source code (because there's that auth dialog) you find that even they still use the BoxID
system. Look at:
FileNameJoin@{
PacletFind["CloudObject"][[1]]["Location"],
"Kernel",
"Dialogs.m"
}
where you'll find:
inptFld[dyn:Dynamic[expr_], boxid_, fldtype_, opts:OptionsPattern[]] := InputField[Dynamic[expr], fldtype,
ContinuousAction -> True,
System`BoxID -> boxid,
ImageSize -> {Full, Automatic},
BaseStyle -> {
FontFamily -> $BaseFontFamily,
FontWeight -> "Regular",
FontColor -> $InputTextColor,
FontSize -> $InputFieldFontSize
},
opts];
But apparently there is now this:
FrontEnd`MoveCursorToInputField
to be used like:
CreateDialog[
inptFld[Dynamic[a], "asd", String],
NotebookDynamicExpression :> (
Refresh[
FrontEnd`MoveCursorToInputField[EvaluationNotebook[], "asd"], None]
)
]