我正在尝试制作与 Twitter 在撰写推文时的工作方式相同的东西。
我的应用程序使用与 @username 相同的语法来发送消息。在我的撰写视图中,我有一个 UITextView/UITextField,用户在其中键入一条消息,我想检测用户何时键入 @,然后将 @ 后面的字符串与我为了自动完成而拥有的用户名数组进行比较.
我一直在关注这个优秀的教程: http ://www.raywenderlich.com/336/auto-complete-tutorial-for-ios-how-to-auto-complete-with-custom-values
这两种方法是我应该执行检测的地方:
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
autocompleteTableView.hidden = NO;
NSString *substring = [NSString stringWithString:textField.text];
substring = [substring
stringByReplacingCharactersInRange:range withString:string];
[self searchAutocompleteEntriesWithSubstring:substring];
return YES;
}
- (void)searchAutocompleteEntriesWithSubstring:(NSString *)substring {
// Put anything that starts with this substring into the autocompleteUrls array
// The items in this array is what will show up in the table view
[autocompleteUrls removeAllObjects];
for(NSString *curString in pastUrls) {
NSRange substringRange = [curString rangeOfString:substring];
if (substringRange.location == 0) {
[autocompleteUrls addObject:curString];
}
}
[autocompleteTableView reloadData];
}
我假设应该在这里检测到@,但我不确定如何这样做,然后只比较紧跟在符号后面的字符(并在遇到空格时停止比较)。
标准的 iOS twitter 应用程序是我正在寻找的一个主要示例。任何帮助都会很棒,谢谢!