tôi đang tìm kiếm thực hiện một UISearchBar mà lấy thông tin từ một url, và với phương pháp mặc định:UISearchBar phát hiện khi loại người dùng dừng lại và không tìm kiếm ngay lập tức để phát hiện tạm dừng
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
tôi có thể phát hiện ngay lập tức khi thay đổi văn bản và thực hiện tìm nạp url, nhưng theo cách này, kiểu văn bản chậm vì iPhone đang tìm kiếm url, vì vậy tôi muốn bắt đầu tìm nạp url khi người dùng ngừng viết trong giây lát, vì vậy tôi muốn phát hiện tạm dừng nhập để làm mới chế độ xem bảng truy xuất thông tin theo url. tôi đã tìm thấy một bài đăng cũ của yêu cầu này và tôi đã thử một giải pháp mà đối với tôi không làm việc:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(request:) object:searchText];
//.....
[self performSelector:@selector(request:) withObject:searchText afterDelay:1.5];
}
-(void)request:(NSString *)myString
{
NSLog(@"%@",myString);
}
theo cách này khi tôi đang gõ phương thức yêu cầu không được gọi nhưng khi tôi dừng lại gõ nó được gọi cho mọi loại ký tự i, vì vậy cũng giống như phương pháp mặc định, tôi đã làm sai điều gì đó? hoặc việc triển khai không chính xác?
cách bạn triển khai tùy chọn đầu tiên với NSString? bạn có thể viết một ví dụ mã không? – Piero
ok, tôi sẽ viết thứ gì đó lên. Không được bảo đảm để làm việc không có lỗi mặc dù, vì tôi đã không thử phương pháp này trong mã thực. – rgeorge
dòng này đang làm gì? [tự yêu cầu: searchDelayer.userInfo]; ? –