在Swift中,如何从UITextView中的空格键中检测到双击?

时间:2017-03-29 19:51:28

标签: ios swift uitextview

我正在开发一款严重依赖UITextView的应用。所需的行为是当用户双击空格键时,光标将缩进5个空格。我该怎么做?

2 个答案:

答案 0 :(得分:0)

使用UIText View Delegate并在文本View(UIText View,应更改Text In:NSRange,替换Text:String)功能中跟踪空间输入和时间。当您在短时间内收到两个空格输入时,您可以使用5个空格操作文本字段。

答案 1 :(得分:0)

您应该使用一个计时器来检查短时间间隔和UITextView的shouldChangeTextInRange委托方法,并为空格字符串写一个条件。之后,您可以使用UITextInput的一个UITextInput的insertText方法:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    if text == " " { 
        if isSecondSpace {
            (textView as UIKeyInput).insertText("     ") //5 spaces
        } else {
            isSecondSpace = true

            DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.2) {
                self.isSecondSpace = false
            }
        }

        return false
    }

    return true
}