[英]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.