มุ่งเน้นไปที่ "InputField" เมื่อสร้างหรือไม่ [ซ้ำ]
Aug 17 2020
สมมติว่าเราสร้างช่องป้อนข้อมูลเป็น
InputField[]
หลังจากกดปุ่ม Enter ช่องป้อนข้อมูลจะปรากฏในพื้นที่เอาต์พุตด้านล่าง แต่โฟกัสในโน้ตบุ๊กจะข้ามไปยังบรรทัดถัดไปซึ่งสามารถสร้างเซลล์ใหม่ได้ มีวิธีในการสร้าง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
เพื่อประเมินในสถานที่:
