Module: ProMotion::Table::Searchable
- Included in:
- ProMotion::Table
- Defined in:
- lib/ProMotion/table/extensions/searchable.rb
Instance Method Summary collapse
- #create_search_bar(params) ⇒ Object
- #make_searchable(params = {}) ⇒ Object (also: #makeSearchable)
-
#searchDisplayController(controller, shouldReloadTableForSearchString: search_string) ⇒ Object
iOS methods, headless camel case #######.
- #searchDisplayControllerWillBeginSearch(controller) ⇒ Object
- #searchDisplayControllerWillEndSearch(controller) ⇒ Object
- #set_searchable_param_defaults(params) ⇒ Object
Instance Method Details
#create_search_bar(params) ⇒ Object
36 37 38 39 40 |
# File 'lib/ProMotion/table/extensions/searchable.rb', line 36 def (params) = UISearchBar.alloc.initWithFrame(params[:frame]) .autoresizingMask = UIViewAutoresizingFlexibleWidth end |
#make_searchable(params = {}) ⇒ Object Also known as: makeSearchable
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/ProMotion/table/extensions/searchable.rb', line 5 def make_searchable(params={}) params = set_searchable_param_defaults(params) = (params) if params[:search_bar] && params[:search_bar][:placeholder] .placeholder = params[:search_bar][:placeholder] end @table_search_display_controller = UISearchDisplayController.alloc.initWithSearchBar(, contentsController: params[:content_controller]) @table_search_display_controller.delegate = params[:delegate] @table_search_display_controller.searchResultsDataSource = params[:data_source] @table_search_display_controller.searchResultsDelegate = params[:search_results_delegate] self.table_view.tableHeaderView = end |
#searchDisplayController(controller, shouldReloadTableForSearchString: search_string) ⇒ Object
iOS methods, headless camel case #######
44 45 46 47 |
# File 'lib/ProMotion/table/extensions/searchable.rb', line 44 def searchDisplayController(controller, shouldReloadTableForSearchString:search_string) self.promotion_table_data.search(search_string) true end |
#searchDisplayControllerWillBeginSearch(controller) ⇒ Object
56 57 58 59 |
# File 'lib/ProMotion/table/extensions/searchable.rb', line 56 def searchDisplayControllerWillBeginSearch(controller) self.table_view.setScrollEnabled false @table_search_display_controller.delegate.will_begin_search if @table_search_display_controller.delegate.respond_to? "will_begin_search" end |
#searchDisplayControllerWillEndSearch(controller) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/ProMotion/table/extensions/searchable.rb', line 49 def searchDisplayControllerWillEndSearch(controller) self.promotion_table_data.stop_searching self.table_view.setScrollEnabled true self.table_view.reloadData @table_search_display_controller.delegate.will_end_search if @table_search_display_controller.delegate.respond_to? "will_end_search" end |
#set_searchable_param_defaults(params) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/ProMotion/table/extensions/searchable.rb', line 23 def set_searchable_param_defaults(params) params[:content_controller] ||= params[:contentController] params[:data_source] ||= params[:searchResultsDataSource] params[:search_results_delegate] ||= params[:searchResultsDelegate] params[:frame] ||= CGRectMake(0, 0, 320, 44) # TODO: Don't hardcode this... params[:content_controller] ||= self params[:delegate] ||= self params[:data_source] ||= self params[:search_results_delegate] ||= self params end |