Sah*_*agi 8 iphone xcode objective-c ios5
在按下搜索栏时,我想获取已经输入的字符串.为此,我目前正在使用此方法:
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
NSLog(@"String:%@",mainSearchBar.text);
return YES;
}
Run Code Online (Sandbox Code Playgroud)
但它返回前一个字符串.例如id我输入"jumbo",它显示jumb,当我按退格键删除一个项目并使其"jumb"时,它显示jumbo.即搜索栏上的上一个字符串.
我该怎么做才能得到当前的字符串?plsease帮助.谢谢
Fel*_*lix 13
在方法内部,您可以获得输入的文本:
NSString* newText = [searchBar.text stringByReplacingCharactersInRange:range withString:text]
Run Code Online (Sandbox Code Playgroud)
斯威夫特3:
let newText = (searchBar.text ?? "" as NSString).replacingCharacters(in: range, with: text)
Run Code Online (Sandbox Code Playgroud)
从中检索新文本最方便的委托方法是:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
Run Code Online (Sandbox Code Playgroud)
双方[searchBar text]并searchText会返回新键入的文本. shouldChangeTextInRange故意报告旧文本,因为它允许您在编辑发生之前取消编辑.
| 归档时间: |
|
| 查看次数: |
7494 次 |
| 最近记录: |