Сосредоточиться на `InputField` при создании? [дубликат]

Aug 17 2020

Допустим, мы создаем поле ввода как

InputField[]

После нажатия клавиши ввода поле ввода появляется в области вывода ниже, однако фокус в записной книжке переходит прямо к следующей строке, где можно создать новую ячейку. Есть ли способ создать InputFieldи сразу выделить его в фокус при создании (без необходимости нажимать на него), чтобы текст можно было сразу ввести в InputField?

Ответы

4 kglr Aug 18 2020 at 05:22

Вы можете назначить идентификатор поля полю ввода, используя BoxID -> "id"эту функцию FrontEnd`MoveCursorToInputFieldдля перемещения фокуса на желаемое поле ввода:

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

Другой пример:

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

Или же выделите содержимое ячейки и используйте Ctrl+ Shift+ Enterдля оценки на месте: