mirror of
https://github.com/kiwix/kiwix-apple.git
synced 2025-09-30 07:26:38 -04:00
commit
This commit is contained in:
parent
29dfe133c9
commit
e7c988404d
@ -70,6 +70,12 @@ extension MainController: SearchBarDelegate, SearchContainerDelegate {
|
|||||||
controllers.search.searchText = text
|
controllers.search.searchText = text
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func shouldReturn(searchBar: SearchBar) -> Bool {
|
||||||
|
let controller = controllers.search.resultController!
|
||||||
|
controller.selectFirstResult()
|
||||||
|
return controller.searchResults.count > 0
|
||||||
|
}
|
||||||
|
|
||||||
private func showSearch(animated: Bool) {
|
private func showSearch(animated: Bool) {
|
||||||
let controller = controllers.search
|
let controller = controllers.search
|
||||||
controller.delegate = self
|
controller.delegate = self
|
||||||
|
@ -14,7 +14,7 @@ class SearchContainer: UIViewController {
|
|||||||
@IBOutlet weak var dimView: UIView!
|
@IBOutlet weak var dimView: UIView!
|
||||||
@IBOutlet weak var scopeAndHistoryContainer: UIView!
|
@IBOutlet weak var scopeAndHistoryContainer: UIView!
|
||||||
@IBOutlet weak var resultContainer: UIView!
|
@IBOutlet weak var resultContainer: UIView!
|
||||||
private var resultController: SearchResultController!
|
private(set) var resultController: SearchResultController!
|
||||||
var delegate: SearchContainerDelegate?
|
var delegate: SearchContainerDelegate?
|
||||||
|
|
||||||
@IBAction func handleDimViewTap(_ sender: UITapGestureRecognizer) {
|
@IBAction func handleDimViewTap(_ sender: UITapGestureRecognizer) {
|
||||||
|
@ -12,7 +12,7 @@ import DZNEmptyDataSet
|
|||||||
|
|
||||||
class SearchResultController: SearchBaseTableController, UITableViewDataSource, UITableViewDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
|
class SearchResultController: SearchBaseTableController, UITableViewDataSource, UITableViewDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
|
||||||
|
|
||||||
private var searchResults = [SearchResult]()
|
private(set) var searchResults = [SearchResult]()
|
||||||
private var searchText = ""
|
private var searchText = ""
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
|
|
||||||
class SearchBar: UIView {
|
class SearchBar: UIView, UITextFieldDelegate {
|
||||||
|
|
||||||
private let backgroundView = SearchBarBackgroundView()
|
private let backgroundView = SearchBarBackgroundView()
|
||||||
private let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .light))
|
private let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .light))
|
||||||
@ -24,7 +24,6 @@ class SearchBar: UIView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// MARK: - Overrides
|
// MARK: - Overrides
|
||||||
|
|
||||||
override init(frame: CGRect) {
|
override init(frame: CGRect) {
|
||||||
@ -63,10 +62,6 @@ class SearchBar: UIView {
|
|||||||
frame = CGRect(x: left, y: 0, width: right - left, height: superview.bounds.height).insetBy(dx: 10, dy: 0)
|
frame = CGRect(x: left, y: 0, width: right - left, height: superview.bounds.height).insetBy(dx: 10, dy: 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
deinit {
|
|
||||||
// NotificationCenter.default.removeObserver(self, name: .UITextFieldTextDidEndEditing, object: textField)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MARK: -
|
// MARK: -
|
||||||
|
|
||||||
func setup() {
|
func setup() {
|
||||||
@ -80,12 +75,12 @@ class SearchBar: UIView {
|
|||||||
backgroundView.addSubview(visualEffectView)
|
backgroundView.addSubview(visualEffectView)
|
||||||
|
|
||||||
addSubview(textField)
|
addSubview(textField)
|
||||||
|
textField.delegate = self
|
||||||
|
textField.returnKeyType = .go
|
||||||
textField.isUserInteractionEnabled = false
|
textField.isUserInteractionEnabled = false
|
||||||
textField.translatesAutoresizingMaskIntoConstraints = false
|
textField.translatesAutoresizingMaskIntoConstraints = false
|
||||||
addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-[view]-|", options: .alignAllCenterY, metrics: nil, views: ["view": textField]))
|
addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-[view]-|", options: .alignAllCenterY, metrics: nil, views: ["view": textField]))
|
||||||
addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-[view]-|", options: .alignAllCenterX, metrics: nil, views: ["view": textField]))
|
addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-[view]-|", options: .alignAllCenterX, metrics: nil, views: ["view": textField]))
|
||||||
|
|
||||||
// NotificationCenter.default.addObserver(self, selector: #selector(SearchBar.textFieldDidEndEditing), name: .UITextFieldTextDidEndEditing, object: textField)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func textDidChange(textField: UITextField) {
|
func textDidChange(textField: UITextField) {
|
||||||
@ -103,6 +98,10 @@ class SearchBar: UIView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
||||||
|
return delegate?.shouldReturn(searchBar: self) ?? false
|
||||||
|
}
|
||||||
|
|
||||||
// MARK: - Responder
|
// MARK: - Responder
|
||||||
|
|
||||||
override var isFirstResponder: Bool {
|
override var isFirstResponder: Bool {
|
||||||
@ -148,7 +147,7 @@ private class SearchBarTextField: UITextField {
|
|||||||
|
|
||||||
func setup() {
|
func setup() {
|
||||||
placeholder = "Search"
|
placeholder = "Search"
|
||||||
addTarget(superview, action: #selector(SearchBar.textDidChange(textField:)), for: UIControlEvents.editingChanged)
|
addTarget(superview, action: #selector(SearchBar.textDidChange(textField:)), for: .editingChanged)
|
||||||
|
|
||||||
autocorrectionType = .no
|
autocorrectionType = .no
|
||||||
autocapitalizationType = .none
|
autocapitalizationType = .none
|
||||||
@ -256,4 +255,5 @@ protocol SearchBarDelegate: class {
|
|||||||
func didBecomeFirstResponder(searchBar: SearchBar)
|
func didBecomeFirstResponder(searchBar: SearchBar)
|
||||||
func didResignFirstResponder(searchBar: SearchBar)
|
func didResignFirstResponder(searchBar: SearchBar)
|
||||||
func textDidChange(text: String, searchBar: SearchBar)
|
func textDidChange(text: String, searchBar: SearchBar)
|
||||||
|
func shouldReturn(searchBar: SearchBar) -> Bool
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user