10

Tôi đang cố gắng thêm một trường văn bản khác cho đầu vào 'Vị trí' vào UISearchController khi người dùng tập trung vào Thanh tìm kiếm, ngay bên dưới thanh tìm kiếm trên thanh điều hướng.Làm cách nào để thêm một trường văn bản khác vào UISearchController khi tiêu điểm ở trên Thanh tìm kiếm?

Ví dụ về những gì tôi có và nơi tôi muốn nó đi:

enter image description here

Tôi đã thử một cái gì đó như thế này, mà không làm việc:

var searchController: UISearchController! 

func searchBarTextDidBeginEditing(searchBar: UISearchBar) { 
    var myTextField: UITextField = UITextField(frame: CGRect(x: 0, y: 0, width: 200.00, height: 40.00)) 
    myTextField.backgroundColor = UIColor.purpleColor() 
    myTextField.text = "Location" 
    myTextField.borderStyle = UITextBorderStyle.None 
    searchController.view.addSubview(myTextField) 
} 

Bất kỳ giúp đỡ sẽ là tuyệt vời! Cảm ơn.

+0

Bạn có thể thêm mã khác không. Tôi muốn biết cách bạn xử lý nó. –

Trả lời

1

Hãy thử như này:

bạn chỉ cần tạo một phong tục Navigationbar thêm lĩnh vực văn bản của bạn vào đó và ghi đè lên SearchController Đại biểu Phương pháp

thử nó có thể hoạt động.

4

Không biết bạn có tìm thấy câu trả lời hay không. Hãy để tôi đề xuất giải pháp của tôi.

Không có gì sai trong mã của bạn. Nó hoạt động tốt. Nhưng lý do tại sao nó không hiển thị là, khi bạn nhấp vào thanh tìm kiếm func searchBarTextDidBeginEditing(searchBar: UISearchBar) không ảnh hưởng đến nó bởi vì bạn có thể quên đặt đại biểu cho thanh tìm kiếm.

Tôi đã thử mã của bạn và sau khi đặt ủy quyền, nó hoạt động tốt. Ngoài ra nó ẩn đằng sau những navbar như vị trí Y là 0. Giải pháp là,

  1. Thêm UISearchBarDelegate đến lớp học của bạn
  2. Trong viewDidLoad()

    override func viewDidLoad(){ 
        super.viewDidLoad() 
        searchcontroller.searchbar.delegate = self 
        } 
    
  3. Trong searchBarTextDidBeginEditing

    func searchBarTextDidBeginEditing(searchBar: UISearchBar) {   
    
        var myTextField: UITextField = UITextField(frame: CGRect(x: 0, y: searchController.searchBar.frame.height + 20, width: view.frame.size.width, height: 40.00)) 
        myTextField.backgroundColor = UIColor.purpleColor() 
        myTextField.text = "Location" 
        myTextField.borderStyle = UITextBorderStyle.None 
        searchController.view.addSubview(myTextField) 
    } 
    

Hy vọng nó sẽ giúp.

Các vấn đề liên quan