Concentrarsi su "InputField" al momento della creazione? [duplicare]

Aug 17 2020

Supponiamo di creare un campo di input come

InputField[]

Dopo aver premuto Invio, il campo di input viene visualizzato nell'area di output sottostante, tuttavia lo stato attivo nel notebook salta direttamente alla riga successiva, dove è possibile creare una nuova cella. C'è un modo per creare un InputFielde selezionarlo immediatamente per metterlo a fuoco al momento della creazione (senza doverci fare clic su di esso), in modo che il testo possa essere digitato immediatamente nel InputField?

Risposte

4 kglr Aug 18 2020 at 05:22

È possibile assegnare un ID casella a un campo di input utilizzando BoxID -> "id"e utilizzare la funzione FrontEnd`MoveCursorToInputFieldper spostare il focus sul campo di input desiderato:

InputField[Null, BoxID -> "id"]
FrontEnd`MoveCursorToInputField[EvaluationNotebook[], "id"];

Un altro esempio:

Grid[{{InputField[Dynamic[x]], InputField[Dynamic[y], BoxID -> "ify"],
    InputField[Dynamic[z]]}}]
FrontEnd`MoveCursorToInputField[EvaluationNotebook[], "ify"]; 

In alternativa, evidenzia il contenuto della cella e usa Ctrl+ Shift+ Enterper valutare in posizione: