2010-12-07 31 views
5

Tôi có một UISearchBar lồng nhau dưới dạng UIBarButtonItem trong thanh công cụ UIToolbar. Chức năng cơ bản hoạt động, nhưng nút hủy và thanh phạm vi từ chối hiển thị. Tôi đã thử kích hoạt chúng trong trình xây dựng giao diện và tôi cũng đã thử gọi theo cách thủ công [searchBar setShowsCancelButton:YES], nhưng cả phương thức đều không hoạt động. Ý tưởng nào?UISearchBar trong thanh UIToolbar sẽ không hiển thị nút hủy

Đây là trên iPad. Tôi đã thử trong iOS 3, và nó không hoạt động trong 4,2, một trong hai.

Trả lời

3

Bạn chỉ cần nhấn một giới hạn về cách hoạt động của UISearchBar. Một cách giải quyết khác là lớp UISearchBar trên thanh công cụ UIToolbar thay vì thực sự tồn tại trên thanh công cụ. Điều này hoạt động trực quan bởi vì thanh tìm kiếm được vẽ giống như một thanh công cụ - gradient của chúng giống nhau.

11

Bạn cần bọc UISearchBar với chế độ xem khác.

UISearchBar *searchBar = [UISearchBar new]; 
UIView *searchBarContainer = [[UIView alloc] initWithFrame:searchBar.frame]; 
[searchBarContainer addSubview:searchBar]; 
UIBarButtonItem *searchBarItem = 
    [[UIBarButtonItem alloc] initWithCustomView:searchBarContainer]; 
0

có thực sự cần thiết để sử dụng nút Hủy trong thanh tìm kiếm không? Chỉ cần sử dụng phương thức textDidChange để xem chuỗi đã được xóa chưa và sử dụng để thực hiện điều tương tự như hủy bỏ.

+1

để bạn nói rằng bất cứ khi nào người dùng xóa ký tự cuối cùng mà bàn phím sẽ bỏ qua và chỉnh sửa kết thúc? Điều đó có vẻ giống như hành vi giả định trên một phần của ứng dụng. – SG1

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