@@ -27,24 +27,27 @@ class SearchViewController: WebViewController {
2727 if let clearButton = searchField. valueForKey ( " _clearButton " ) as? UIButton , clearImage = clearButton. imageForState ( . Normal) {
2828 view. setImage ( clearImage. imageWithColor ( searchField. textColor!) , forSearchBarIcon: . Clear, state: . Normal)
2929 }
30-
3130 }
3231 return view
3332 } ( )
3433
34+ var onCancel: ( SearchViewController - > ( ) ) ?
35+
3536 override func viewDidLoad( ) {
3637 currentPath = searchPath
3738 super. viewDidLoad ( )
3839 navigationItem. titleView = searchBar
40+ let cancelItem = UIBarButtonItem ( barButtonSystemItem: . Cancel, target: self , action: #selector( cancelButtonAction) )
41+ navigationItem. rightBarButtonItem = cancelItem
3942 }
4043
4144 override func visitableDidRender( ) {
4245 super. visitableDidRender ( )
4346 visitableView. webView? . hidden = currentPath == searchPath
4447 }
4548
46- override func viewDidAppear ( animated: Bool) {
47- super. viewDidAppear ( animated)
49+ override func viewWillAppear ( animated: Bool) {
50+ super. viewWillAppear ( animated)
4851 if searchBar. text == nil || searchBar. text!. characters. count <= 0 {
4952 searchBar. becomeFirstResponder ( )
5053 }
@@ -59,6 +62,7 @@ class SearchViewController: WebViewController {
5962// MARK: - UISearchBarDelegate
6063
6164extension SearchViewController: UISearchBarDelegate {
65+
6266 func searchBarSearchButtonClicked( searchBar: UISearchBar ) {
6367 searchBar. resignFirstResponder ( )
6468 let text = searchBar. text ?? " "
@@ -68,4 +72,15 @@ extension SearchViewController: UISearchBarDelegate {
6872 reloadVisitable ( )
6973 }
7074 }
75+
76+ }
77+
78+ // MARK: - action
79+
80+ extension SearchViewController {
81+
82+ func cancelButtonAction( ) {
83+ onCancel ? ( self )
84+ }
85+
7186}
0 commit comments