๋๋ก๋ ์คํฌ๋ฆฝํธ์ ํ๊ณ๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
ํธ์ง๊ธฐ ๊ฐ์ด ์ผ๋ถ ์ ํ๋ณด๋ค ๊ธด ๊ฒฝ์ฐ ๋ค์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ์ ์ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
var doc = editor.session.doc
doc.applyAnyDelta = doc.applyAnyDelta || doc.applyDelta
doc.applyDelta = function(delta) {
if (delta.action == "insert" && this.$maxLength
&& this.getValue().length > this.$maxLength) {
return false;
}
return this.applyAnyDelta(delta);
}
doc.$maxLength = 20
์ด๊ฒ์ด ๊ธฐ๋ณธ ์ต์ ์ธํธ์ ์ผ๋ถ์ฌ์ผ ํ๋์ง ์๋๋ฉด ํ์ฅ ๊ธฐ๋ฅ์ด ํ์ํ์ง ์ฌ๋ถ๋ฅผ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋๋ก ์ด๋ค ๊ฒฝ์ฐ์ ์ด๊ฒ์ด ํ์ํ์ง ์๋ ค์ฃผ์๊ฒ ์ต๋๊น?
๋ฌผ๋ก ์ด์ผ!! ๋ฐ๋ผ์ ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์คํฌ๋ฆฝํธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ง๋๋ฉฐ ์ด ์ด์๋ ์ ํ์ด ์์ต๋๋ค. ํธ์ง๊ธฐ๊ฐ ์ค์ ๋ก ์น ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ง์ด ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ๋งค์ฐ ์ผ๋ฐ์ ์ด์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฐ๋ฉด์ ์์ ์คํฌ๋ฆฝํธ๋ ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผํฉ๋๋ค ... ๊ฐ์ฌํฉ๋๋ค.
๊ฒฐ๊ณผ ๊ธธ์ด๊ฐ ์ ํ๋๋ ๊ธธ์ด์ธ์ง ํ์ธํ๊ณ ๋ ๋ถ๋ถ์ ์๋ผ์ ํฐ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํ์ฉํ๋ ค๋ฉด ๋ค์ ํธ์ง์ ์๋ํ์ญ์์ค.
var doc = editor.session.doc
doc.applyAnyDelta = doc.applyAnyDelta || doc.applyDelta
doc.applyDelta = function(delta) {
let joinedLines = delta.lines.join("\n")
if (delta.action == "insert" && this.$maxLength
&& this.getValue().length + joinedLines.length > this.$maxLength) {
let newPasteLength = this.$maxLength - this.getValue().length
if(newPasteLength > 0) {
delta.lines = joinedLines.substr(0, newPasteLength).split("\n")
if(delta.lines.length == 1 && delta.start.row == delta.end.row) {
delta.end = {
row: delta.start.row,
column: delta.start.column+newPasteLength
}
} else {
delta.end = {
row: delta.start.row+delta.lines.length,
column: delta.lines[delta.lines.length-1].length
}
}
} else return false;
}
return this.applyAnyDelta(delta);
}
doc.$maxLength = 20
ํ๋ก๋์ ์ ์ํด ๋ ์ต์ ํํ๋ฉด ๋์์ด ๋ ์ ์์ง๋ง ์ด์จ๋ ๋๊ตฐ๊ฐ์๊ฒ ๋์์ด ๋๊ธธ ๋ฐ๋๋๋ค!
๋ํ @christianbs ์ ๋์ผํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ฒฐ๊ณผ ๊ธธ์ด๊ฐ ์ ํ๋๋ ๊ธธ์ด์ธ์ง ํ์ธํ๊ณ ๋ ๋ถ๋ถ์ ์๋ผ์ ํฐ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํ์ฉํ๋ ค๋ฉด ๋ค์ ํธ์ง์ ์๋ํ์ญ์์ค.
ํ๋ก๋์ ์ ์ํด ๋ ์ต์ ํํ๋ฉด ๋์์ด ๋ ์ ์์ง๋ง ์ด์จ๋ ๋๊ตฐ๊ฐ์๊ฒ ๋์์ด ๋๊ธธ ๋ฐ๋๋๋ค!
๋ํ @christianbs ์ ๋์ผํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ