我使用NSTextView让用户以JSON格式输入输入。如何使其按下Return / Enter it indents。
我尝试使用NSTextStorageDelegate实现它。
func textStorage(textStorage: NSTextStorage, willProcessEditing editedMask: NSTextStorageEditActions, range editedRange: NSRange, changeInLength delta: Int) {
let inputString = textStorage.string
if editedRange.length == 1 {
let g = inputString.characters.startIndex.advancedBy(editedRange.location)
if "\(inputString.characters[g])" == "\n" {
textStorage.mutableString.insertString("\n$$$$", atIndex: editedRange.location)
}
}
}
它工作正常,除了按下输入它创建2行而不是1。
例如:
(假设管道是插入符号)
"Some": "Key"|
按Enter后
"Some": "Key"
$$$$
| //Cursor comes here. It should stay above at end of line