NSTextView

时间:2016-09-10 12:41:37

标签: macos cocoa

我使用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

0 个答案:

没有答案