Ace: νŽΈμ§‘κΈ°λ₯Ό λΉ„ν™œμ„±ν™”ν•˜λŠ” μ˜΅μ…˜

에 λ§Œλ“  2011λ…„ 05μ›” 23일  Β·  18μ½”λ©˜νŠΈ  Β·  좜처: ajaxorg/ace

ν…μŠ€νŠΈ μ˜μ—­μ˜ 'disabled' 속성과 μœ μ‚¬ν•©λ‹ˆλ‹€.

readOnly λͺ¨λ“œμ™€ μœ μ‚¬ν•˜λ©° νŽΈμ§‘κΈ°μ™€μ˜ μ‚¬μš©μž μƒν˜Έ μž‘μš©λ§Œ ν—ˆμš©λ©λ‹ˆλ‹€. λ”°λΌμ„œ μ»€μ„œμ™€ 라인 λ§ˆμ»€κ°€ μˆ¨κ²¨μ§‘λ‹ˆλ‹€.
@gissues :{"μ£Όλ¬Έ":73.29192546583863,"μƒνƒœ":"백둜그"}

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•„, 이제 μ•Œκ² μŠ΅λ‹ˆλ‹€.
κ·ΈλŸ¬λ‚˜ μ–Όλ§ˆλ‚˜ λ§Žμ€ νŽΈμ§‘κΈ° κΈ°λŠ₯을 λΉ„ν™œμ„±ν™”ν•΄μ•Ό ν•˜λŠ”μ§€λŠ” μ •ν™•ν•œ μ‚¬μš© 사둀에 따라 λ‹€λ¦…λ‹ˆλ‹€.
νŽΈμ§‘μžμ—κ²Œ μ΄ˆμ μ„ λ§žμΆ”λŠ” 선택과 κΈ°λŠ₯은 두 경우 λͺ¨λ‘ λΉ„ν™œμ„±ν™”λ˜μ–΄μ„œλŠ” μ•ˆ λœλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 가상 λ·°ν¬νŠΈλŠ” 좜λ ₯을 ν‘œμ‹œν•˜λŠ” 데 μœ μš©ν•˜μ§€λ§Œ λΈŒλΌμš°μ € 선택은 ν•¨κ»˜ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 그리고 μ½”λ“œ 예제의 경우 일반적으둜 ctrl+a ctrl+c ν•  수 μžˆλŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

μ»€μ„œ 및 라인 ν•˜μ΄λΌμ΄νŠΈλ₯Ό 숨기렀면

editor.setOptions({
    readOnly: true,
    highlightActiveLine: false,
    highlightGutterLine: false
})
editor.renderer.$cursorLayer.element.style.opacity=0

νŽΈμ§‘κΈ°λ₯Ό νƒ­ν•  수 없도둝 λ§Œλ“€κΈ°

editor.textInput.getElement().tabIndex=-1
 or
editor.textInput.getElement().disabled=true

λͺ¨λ“  λ°”λ‘œ κ°€κΈ°λ₯Ό λΉ„ν™œμ„±ν™”ν•˜λ €λ©΄

editor.commands.commmandKeyBinding={}

λ˜ν•œ $mouseHandler 및 textInput에 λŒ€ν•œ 파괴 λ©”μ„œλ“œλ₯Ό μΆ”κ°€ν•˜μ—¬ λͺ¨λ‘ λΉ„ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  18 λŒ“κΈ€

이것은 μ–΄λ””μ—μ„œλ‚˜ κ΅¬ν˜„λ˜μ—ˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” λ˜ν•œ 이 κΈ°λŠ₯이 맀우 μœ μš©ν•˜λ‹€λŠ” 것을 μ•Œκ²Œ 될 κ²ƒμž…λ‹ˆλ‹€.

이에 λŒ€ν•œ μ‚¬μš© μ‚¬λ‘€λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ? 거의 μ‚¬μš©λ˜μ§€ μ•Šκ³  κ΅¬ν˜„ν•˜κΈ° 쉽기 λ•Œλ¬Έμ— 이것을 코어에 μΆ”κ°€ν•˜κ³  싢지 μ•ŠμŠ΅λ‹ˆλ‹€.

같은 것

editor.container.style.pointerEvents="none"
editor.container.style.opacity=0.5 // or use svg filter to make it gray
editor.renderer.setStyle("disabled", true)
editor.blur()

μ•„λ‹ˆλ©΄ 이거

var cover = document.createElement("div")
editor.container.appendChild(cover)
cover.style.cssText = "position:absolute;\
top:0;bottom:0;right:0;left:0;\
background:rgba(150,150,150,0.5);\
z-index:100"
cover.addEventListener("mousedown", function(e){e.stopPropagation()}, true)

μž‘λ™ ν•  것이닀.

λͺ©ν‘œλŠ” μ‹œκ°μ μœΌλ‘œ λΉ„ν™œμ„±ν™”λœ κ²ƒμ²˜λŸΌ 보이게 ν•˜λŠ” 것이 μ•„λ‹ˆλΌ μ‚¬μš©μžκ°€ μƒν˜Έ μž‘μš©ν•  수 μžˆλŠ” κΈ°λŠ₯을 μ œκ±°ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 즉, μ»€μ„œλ₯Ό μ œμ–΄ν•  수 μ—†μŠ΅λ‹ˆλ‹€(더 쒋은 점은 μ»€μ„œκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€).
이것은 "disabled"라기보닀 더 μ—„κ²©ν•œ 읽기 μ „μš© μœ ν˜•μž…λ‹ˆλ‹€. 이것은 νŽΈμ§‘κΈ°λ₯Ό μ‚¬μš©ν•˜μ—¬ μ½”λ“œ μƒ˜ν”Œμ„ ν‘œμ‹œν•˜κ±°λ‚˜ μ›Ή νŽ˜μ΄μ§€μ—μ„œ μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ˜ 좜λ ₯을 ν‘œμ‹œν•  λ•Œ νŽΈλ¦¬ν•©λ‹ˆλ‹€. 이것이 νŽΈμ§‘κΈ°μ— 이상적인 μš©λ„λŠ” 아닐 수 μžˆμ§€λ§Œ ꡬ문 κ°•μ‘° ν‘œμ‹œ 및 일반적으둜 보기 쒋은 것과 같은 κΈ°λŠ₯은 이와 같은 μš©λ„λ‘œ μ‚¬μš©ν•˜κΈ°μ— 맀λ ₯적인 μ˜΅μ…˜μž…λ‹ˆλ‹€.

두 μ½”λ“œ μƒ˜ν”Œ λͺ¨λ‘ μ‹€μ œλ‘œ 이λ₯Ό μˆ˜ν–‰ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€. λ‘˜ 쀑 μ–΄λŠ 것도 μ»€μ„œλ₯Ό μ œκ±°ν•˜μ§€ μ•ŠμœΌλ©° μ‚¬μš©μžκ°€ μ»€μ„œλ₯Ό μ œμ–΄ν•˜μ§€ λͺ»ν•˜λ„둝 ν•˜λŠ” 쒋은 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” λ™μ•ˆ νŽΈμ§‘κΈ°μ— 포컀슀λ₯Ό νƒ­ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ•„, 이제 μ•Œκ² μŠ΅λ‹ˆλ‹€.
κ·ΈλŸ¬λ‚˜ μ–Όλ§ˆλ‚˜ λ§Žμ€ νŽΈμ§‘κΈ° κΈ°λŠ₯을 λΉ„ν™œμ„±ν™”ν•΄μ•Ό ν•˜λŠ”μ§€λŠ” μ •ν™•ν•œ μ‚¬μš© 사둀에 따라 λ‹€λ¦…λ‹ˆλ‹€.
νŽΈμ§‘μžμ—κ²Œ μ΄ˆμ μ„ λ§žμΆ”λŠ” 선택과 κΈ°λŠ₯은 두 경우 λͺ¨λ‘ λΉ„ν™œμ„±ν™”λ˜μ–΄μ„œλŠ” μ•ˆ λœλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 가상 λ·°ν¬νŠΈλŠ” 좜λ ₯을 ν‘œμ‹œν•˜λŠ” 데 μœ μš©ν•˜μ§€λ§Œ λΈŒλΌμš°μ € 선택은 ν•¨κ»˜ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 그리고 μ½”λ“œ 예제의 경우 일반적으둜 ctrl+a ctrl+c ν•  수 μžˆλŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

μ»€μ„œ 및 라인 ν•˜μ΄λΌμ΄νŠΈλ₯Ό 숨기렀면

editor.setOptions({
    readOnly: true,
    highlightActiveLine: false,
    highlightGutterLine: false
})
editor.renderer.$cursorLayer.element.style.opacity=0

νŽΈμ§‘κΈ°λ₯Ό νƒ­ν•  수 없도둝 λ§Œλ“€κΈ°

editor.textInput.getElement().tabIndex=-1
 or
editor.textInput.getElement().disabled=true

λͺ¨λ“  λ°”λ‘œ κ°€κΈ°λ₯Ό λΉ„ν™œμ„±ν™”ν•˜λ €λ©΄

editor.commands.commmandKeyBinding={}

λ˜ν•œ $mouseHandler 및 textInput에 λŒ€ν•œ 파괴 λ©”μ„œλ“œλ₯Ό μΆ”κ°€ν•˜μ—¬ λͺ¨λ‘ λΉ„ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν›Œλ₯­ν•©λ‹ˆλ‹€. μ œκ°€ 찾던 νš¨κ³Όκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ •ν™•ν•œ μ‚¬μš© 사둀에 따라 λ‹¬λΌμ§€λŠ” μš”κ΅¬ 사항에 λ™μ˜ν•˜μ§€λ§Œ μ»€μ„œλ‚˜ λ°”λ‘œ κ°€κΈ° 등을 λΉ„ν™œμ„±ν™”ν•˜λŠ” λͺ‡ 가지 μ˜΅μ…˜μ΄ 있으면 νŽΈλ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ μœ„ μ½”λ“œμ˜ λ§ˆμ§€λ§‰ 쀄은 νŽΈμ§‘κΈ°μ—μ„œ 아무 것도 ν‘œμ‹œν•˜μ§€ μ•ŠλŠ” κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€. :/

λ˜ν•œ μœ„ μ½”λ“œμ˜ λ§ˆμ§€λ§‰ 쀄은 νŽΈμ§‘κΈ°μ—μ„œ 아무 것도 ν‘œμ‹œν•˜μ§€ μ•ŠλŠ” κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€. :/

editor.commands.commmandKeyBinding={} 을 μ˜λ―Έν•©λ‹ˆκΉŒ? 그것은 맀우 이상할 κ²ƒμž…λ‹ˆλ‹€

κ°μ‚¬ν•©λ‹ˆλ‹€!

κ°μ‚¬ν•©λ‹ˆλ‹€. νŽΈμ§‘κΈ°λ₯Ό λΉ„ν™œμ„±ν™”ν•˜λŠ” μ˜΅μ…˜μ΄ ν•„μš”ν•©λ‹ˆλ‹€!

μ•ˆλ…•ν•˜μ„Έμš”, $mouseHandler 파괴자λ₯Ό κ΅¬ν˜„ν•˜μ…¨μŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” μ•½κ°„ 길을 μžƒμ—ˆμŠ΅λ‹ˆλ‹€ (μ—¬κΈ° 초보자). μ•„λ‹ˆλ©΄ λΉ„ν™œμ„±ν™” ν•  수 μžˆλŠ” 방법이 μžˆλ‚˜μš”? νŽΈμ§‘μžκ°€ btwλ₯Ό λΉ„ν™œμ„±ν™”ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€ :-)

@λ‚˜μ΄νŠΈ μœ™
editor.renderer.$cursorLayer.element.style.opacity=0
$cursorLayerλŠ” 이제 VirtualRenderer의 속성이 μ•„λ‹Œ 것 κ°™μŠ΅λ‹ˆλ‹€.
λ‚΄ νŽΈμ§‘κΈ°κ°€ 'readOnly' μƒνƒœμΌ λ•Œ μ»€μ„œλ₯Ό 숨기고 μ‹ΆμŠ΅λ‹ˆλ‹€. 그리고 κ·€ν•˜κ°€ μ œκ³΅ν•œ 방법을 μ‹œλ„ν–ˆμ§€λ§Œ $cursorLayerκ°€ VirtualRenderer의 속성이 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ 방법이 μžˆμŠ΅λ‹ˆκΉŒ? μ»€μ„œλ₯Ό μˆ¨κΈ°μ‹œκ² μŠ΅λ‹ˆκΉŒ?

VirtualRendererμ—λŠ” hideCursor()와 setCursorStyle()의 두 가지 방법이 μžˆλ‹€λŠ” 것을 μ•Œκ²Œ λ˜μ—ˆκ³ , μ•„λž˜ λ°©λ²•μœΌλ‘œ μ‚¬μš©ν•˜λ €κ³  ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 잘 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
this._editor.renderer.hideCursor();
this._editor.renderer.setCursorStyle("뢈투λͺ…도: 0;");
μ œκ°€ μ‚¬μš©μ„ 잘λͺ»ν•œκ±΄κ°€μš”?

μž‘μ—…μ΄ 진행 μ€‘μΈκ°€μš”? ν¬μ»€μŠ€κ°€ νŽΈμ§‘κΈ°μ—μ„œ λ²—μ–΄λ‚  λ•Œ νŽΈμ§‘κΈ°λ₯Ό λΉ„ν™œμ„±ν™”ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

여기도 λ§ˆμ°¬κ°€μ§€! renderer.hideCursor() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜κ³  μ‹Άμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. λ‚΄ νŽΈμ§‘κΈ° μ΄ˆκΈ°ν™” 블둝과 changeCursor μ΄λ²€νŠΈμ—μ„œ ν˜ΈμΆœν•˜λ €κ³  ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ‚¬λžŒλ“€μ΄ μ—¬μ „νžˆ μ»€μ„œλ₯Ό λΉ„ν™œμ„±ν™”ν•˜λ €λŠ” 경우 νŽΈμ§‘κΈ° μš”μ†Œμ—μ„œ css3 속성 pointer-events: none; 을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

μ—¬μ „νžˆ μƒˆλ‘œμš΄ λ°˜μ‘ 개발자인 νŽΈμ§‘κΈ°λ₯Ό λΉ„ν™œμ„±ν™”ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν•©λ‹ˆκΉŒ? 도움을 μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€

μ‚¬λžŒλ“€μ΄ μ—¬μ „νžˆ μ»€μ„œλ₯Ό λΉ„ν™œμ„±ν™”ν•˜λ €λŠ” 경우 νŽΈμ§‘κΈ° μš”μ†Œμ—μ„œ css3 속성 pointer-events: none; 을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

νŽΈμ§‘κΈ°λ₯Ό μ–΄λ–»κ²Œ λΉ„ν™œμ„±ν™”ν•©λ‹ˆκΉŒ?

μ‚¬λžŒλ“€μ΄ μ—¬μ „νžˆ μ»€μ„œλ₯Ό λΉ„ν™œμ„±ν™”ν•˜λ €λŠ” 경우 νŽΈμ§‘κΈ° μš”μ†Œμ—μ„œ css3 속성 pointer-events: none; 을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

νŽΈμ§‘κΈ°λ₯Ό μ–΄λ–»κ²Œ λΉ„ν™œμ„±ν™”ν•©λ‹ˆκΉŒ?

editor.setOptions({
    readOnly: true,
})

맀λ ₯처럼 μΌν–ˆλ‹€

2020λ…„ 9μ›” 23일 μˆ˜μš”μΌ μ˜€ν›„ 10:27 Nehal Hasnayeen [email protected]
썼닀:

μ‚¬λžŒλ“€μ΄ μ—¬μ „νžˆ μ»€μ„œλ₯Ό λΉ„ν™œμ„±ν™”ν•˜λ €λŠ” 경우 css3 속성 pointer-eventsλ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.
μ—†μŒ; νŽΈμ§‘κΈ° μš”μ†Œμ—μ„œ.

νŽΈμ§‘κΈ°λ₯Ό μ–΄λ–»κ²Œ λΉ„ν™œμ„±ν™”ν•©λ‹ˆκΉŒ?

editor.setOptions({
읽기 μ „μš©: μ°Έ,
})

β€”
당신이 λŒ“κΈ€μ„ λ‹¬μ•˜κΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/ajaxorg/ace/issues/266#issuecomment-698073286 λ˜λŠ”
ꡬ독 μ·¨μ†Œ
https://github.com/notifications/unsubscribe-auth/ALIR2LMEV5BHDXPXO7RT5BTSHKVAPANCNFSM4AESJK3A
.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰