簡體   English   中英

在Swift中,如何檢測UITextView中空格鍵的雙擊?

[英]In Swift, how do I detect a double tap from the spacebar in UITextView?

我正在開發一個嚴重依賴UITextView的應用程序。 所需的行為是當用戶雙擊空格鍵時,光標將縮進5個空格。 我該怎么做?

使用UIText ViewDelegate並在文本View(UIText View中,應該在以下位置更改Text In:NSRange,replacement Text:String)函數可跟蹤空間輸入和時間。 當您在短時間內收到兩個空格輸入時,可以使用5個空格來操縱文本字段。

您應該使用計時器檢查較短的時間間隔,並使用UITextView的shouldChangeTextInRange委托方法並為空格字符串編寫條件。 之后,可以使用UITextInput的insertText方法,UITextInput的協議之一:

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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM