1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
//
// IBTUISearchBar.m
// XFFruit
//
// Created by Lili Wang on 15/4/10.
// Copyright (c) 2015年 Xummer. All rights reserved.
//
#import "IBTUISearchBar.h"
@interface IBTUISearchBar ()
<
UISearchBarDelegate
>
@end
@implementation IBTUISearchBar
#pragma mark - Life Cycle
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self _m_init];
}
return self;
}
#pragma mark - Private Method
- (void)_m_init {
self.delegate = self;
}
#pragma mark - UISearchBarDelegate
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
if ([_sbDelegate respondsToSelector:@selector(searchBarShouldBeginEditing:)]) {
return [_sbDelegate searchBarShouldBeginEditing:searchBar];
}
return YES;
}
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
_isSearching = YES;
if ([_sbDelegate respondsToSelector:@selector(searchBarTextDidBeginEditing:)]) {
[_sbDelegate searchBarTextDidBeginEditing:searchBar];
}
}
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar{
if ([_sbDelegate respondsToSelector:@selector(searchBarShouldEndEditing:)]) {
return [_sbDelegate searchBarShouldEndEditing:searchBar];
}
return YES;
}
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar {
if ([_sbDelegate respondsToSelector:@selector(searchBarTextDidEndEditing:)]) {
[_sbDelegate searchBarTextDidEndEditing:searchBar];
}
}
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
if ([_sbDelegate respondsToSelector:@selector(searchBar:textDidChange:)]) {
[_sbDelegate searchBar:searchBar textDidChange:searchText];
}
}
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if ([_sbDelegate respondsToSelector:@selector(searchBar:shouldChangeTextInRange:replacementText:)]) {
return [_sbDelegate searchBar:searchBar shouldChangeTextInRange:range replacementText:text];
}
return YES;
}
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
_isSearching = YES;
if ([_sbDelegate respondsToSelector:@selector(searchBarSearchButtonClicked:)]) {
[_sbDelegate searchBarSearchButtonClicked:searchBar];
}
}
- (void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar {
if ([_sbDelegate respondsToSelector:@selector(searchBarBookmarkButtonClicked:)]) {
[_sbDelegate searchBarBookmarkButtonClicked:searchBar];
}
}
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar {
_isSearching = NO;
if ([_sbDelegate respondsToSelector:@selector(searchBarCancelButtonClicked:)]) {
[_sbDelegate searchBarCancelButtonClicked:searchBar];
}
}
- (void)searchBarResultsListButtonClicked:(UISearchBar *)searchBar {
if ([_sbDelegate respondsToSelector:@selector(searchBarResultsListButtonClicked:)]) {
[_sbDelegate searchBarResultsListButtonClicked:searchBar];
}
}
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope {
if ([_sbDelegate respondsToSelector:@selector(searchBar:selectedScopeButtonIndexDidChange:)]) {
[_sbDelegate searchBar:searchBar selectedScopeButtonIndexDidChange:selectedScope];
}
}
@end