ตั้งค่าสำหรับตัวแก้ไขเอซโดยไม่ต้องเลือกตัวแก้ไขทั้งหมด


92

ดังนั้นคุณสามารถกำหนดค่าของตัวแก้ไขเอซได้setValueแต่หลังจากตั้งค่าแล้วตัวแก้ไขจะเลือกค่าทั้งหมดของตัวแก้ไข คุณจะปิดการใช้งานนี้ได้อย่างไร? ซึ่งหมายความว่าเมื่อฉันกำหนดค่าของตัวแก้ไขเอซHello worldมันจะไม่ไฮไลต์Hello world

คำตอบ:


165

คุณสามารถใช้พารามิเตอร์ที่สองเพื่อควบคุมตำแหน่งเคอร์เซอร์หลังจาก setValue

editor.setValue(str, -1) // moves cursor to the start
editor.setValue(str, 1) // moves cursor to the end

17

คุณยังสามารถใช้ clearSelection () หลังจากที่คุณทำ setValue ();

editor.setValue("Hello World");
editor.clearSelection(); // This will remove the highlight over the text


0

ฉันประสบปัญหาเดียวกันกับคุณ

แม้ว่าคุณจะตั้งค่าพารามิเตอร์ที่สองเป็น1หรือ-1 ได้แต่ฉันคิดว่าคุณควรตรวจสอบสิ่งนี้ด้วย: https://ace.c9.io/api/editor.html#Editor.setValue

Editor.setWrapBehavioursEnabled(Boolean enabled)

ใช้สิ่งนี้ทันทีหลังจากสร้างตัวแก้ไข

สิ่งนี้ได้ผลดีสำหรับฉัน ความแตกต่างระหว่างวิธีการนี้และหนึ่งร่วมกันโดยผู้ใช้ก็คือตำแหน่งที่ลูกศรที่จะไม่เปลี่ยนแปลงคุณสามารถย้ายตัวเองโดยใช้Editor.selection.moveTo(row, column)วิธีนี้ผู้ใช้จะได้ประสบการณ์แปลกเปลี่ยนแปลงตำแหน่งตัวชี้เมื่อใช้การพูด, CTRL + Z เพื่อยกเลิก การกระทำ :)


1
คำตอบนี้ไม่ชัดเจนคุณหมายความว่าการโทรEditor.setWrapBehavioursEnabled(Boolean enabled)ด้วยค่าบางอย่างหลังจากเริ่มต้นโปรแกรมแก้ไขแล้วจะป้องกันไม่ให้เลือกข้อความทั้งหมดเมื่อโทรeditor.setValueหรือไม่?
Macario

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.