Grz*_*ski 5 nsstring uitextfield ios
我正在研究一个自动完成组件,我有一个问题,我想以一些简单的方式解决.
我想支持对自动填充文本的编辑,例如:
blablabl @usertag blablabl
Run Code Online (Sandbox Code Playgroud)
如果用户返回并编辑@usertag字符串,我想在编辑时启动自动完成功能.
问题是,如何从文本字段中获取当前编辑的单词.我想到了光标位置,用""(空格)分隔nsstring到字,并从第一个字到光标位置计数字母.
有没有更简单的方法呢?
好的,我找到了一种很容易做到的方法.也许有人会发现它很有用:
UITextRange* selectedRange = [textField selectedTextRange];
NSInteger cursorOffset = [textField offsetFromPosition:0 toPosition:selectedRange.start];
NSString* text = textField.text;
NSString* substring = [text substringToIndex:cursorOffset];
NSString* editedWord = [[substring componentsSeparatedByString:@" "] lastObject];
Run Code Online (Sandbox Code Playgroud)
Swift 4解决方案
func getCurrentEditingWord() ->String? {
let selectedRange: UITextRange? = self.textView.selectedTextRange
var cursorOffset: Int? = nil
if let aStart = selectedRange?.start {
cursorOffset = self.textView.offset(from: self.textView.beginningOfDocument, to: aStart)
}
let text = self.textView.text
let substring = (text as NSString?)?.substring(to: cursorOffset!)
let editedWord = substring?.components(separatedBy: " ").last
return editedWord
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1828 次 |
| 最近记录: |