當用戶僅移動光標而不輸入新單詞(即(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange) replacementString:(NSString *)string
未觸發)時,如何檢測此事件?如何檢測UITextField光標移動而不鍵入?
-1
A
回答
1
添加selectedTextRange
財產觀察員viewDidAppear,
[self.txtfield addObserver:self forKeyPath:@"selectedTextRange" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
那麼這個屬性添加功能,
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if([keyPath isEqualToString:@"selectedTextRange"] && self.txtfield == object)
NSLog(@"cursor moved");
}
當你移動光標,而無需輸入應該打印任何文本「光標移到」。
0
有selectedTextRange財產UITextField
通過從UITextInput
協議。因此,您可以使用KVO訂閱此屬性的更改,也可以使用重寫的方法setSelectedTextRange
實施您自己的子類。
0
我相信也肯定是的UITextField的用於光標移動的任何本地代表,但你也可以繼承的UITextField,並且可以覆蓋方法
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
if let selectedRange = textField.selectedTextRange {
let cursorPosition = textField.offset(from: textField.beginningOfDocument, to: selectedRange.start)
print("\(cursorPosition)")
}
}
,每當光標移動,那麼它應該是可以檢查獲取光標位置。
相關問題
- 1. UITextfield光標移動
- 2. UITextField光標向後移動
- 3. 如何檢測Mac上的所有光標移動和按鍵?
- 4. 將光標移動到UITextField的開頭
- 5. 檢測或禁用輸入欄中的光標移動
- 6. 如何將UITextField光標移動到下一個文本字段
- 7. 光標不移動
- 8. 如何在鼠標左鍵按下時檢測鼠標移動?
- 9. 如何移動editText光標?
- 10. 閃光 - 檢測鍵
- 11. 檢測鼠標何時不移動
- 12. 如何在viemu(不使用箭頭鍵)的插入模式下移動光標?
- 13. 簡單的鼠標移動檢測(但沒有光標移動)在winapi
- 14. 如何檢測人造鼠標移動?
- 15. gmail如何檢測鼠標移動?
- 16. 按下某個鍵時如何移動鼠標光標?
- 17. 如何使用箭頭鍵移動鼠標光標
- 18. 移動光標在bash與鍵盤
- 19. jQuery:光標檢測
- 20. 檢測IBeam光標
- 21. 格式的UITextField文本,而無需將光標移動到結束
- 22. 如何在不移動光標的情況下移動屏幕?
- 23. 如何檢測uitextfield長度
- 24. UITextField禁用光標
- 25. 檢測鼠標實際移動時,而不僅僅是當頁面移動時
- 26. 如何檢測移動設備移動?
- 27. WPF檢測鼠標移動?
- 28. MouseHook檢測鼠標移動
- 29. 檢測不帶移動的NFC標籤
- 30. 如何在使用javascript鍵入時避免光標移回