2013-04-11 32 views
35

Cách kích hoạt nút hủy lập trình trong UISearchBar, như thể bạn đã nhấn nút hủy?Làm cách nào để kích hoạt nút hủy trong UISearchBar?

Tôi có UISearchBar ở đầu UITableView và sau khi tìm kiếm, khi ai đó chọn một hàng, tôi muốn kích hoạt nút hủy lập trình trong UISearchBar?

CHỈNH SỬA: Không có tương tác của người dùng.

+0

Bạn có bộ điều khiển hiển thị tìm kiếm không? –

+0

@MartinR, Có .. – Marckaraujo

Trả lời

54

Đối với một bộ điều khiển xem sử dụng một bộ điều khiển hiển thị tìm kiếm, bạn có thể thiết lập

self.searchDisplayController.active = NO; 
// or: 
[self.searchDisplayController setActive:NO animated:YES]; 

để bỏ qua giao diện tìm kiếm.

+0

Aeew, thanks !! nó hoạt động! Tôi chỉ không biết tại sao tôi đã bỏ phiếu, nhờ sự chú ý của bạn. – Marckaraujo

+0

@Marckaraujo: Bạn được chào đón. –

28

Bạn cần triển khai UISearchBarDelegate. Một khi bạn đã làm điều đó, sử dụng:

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 

Cho các đại biểu rằng nút hủy được khai thác.

Sau đó sử dụng:

[self searchBarCancelButtonClicked:yourSearchBar]; 
+0

Không, tôi cần thực hiện theo chương trình. mà không có sự tương tác của người dùng. – Marckaraujo

+0

Tôi hiểu lầm. Xem câu trả lời đã chỉnh sửa. – rog

+2

Đề xuất tốt, rog. Tôi đã thực hiện nó theo cách của bạn và hoạt động tuyệt vời! – iWheelBuy

20

Đối với mới UISearchController (được giới thiệu vào năm 2014 với iOS 8), bạn có thể gọi:

[self.searchController setActive:FALSE]; 

hoặc

self.searchController.active = FALSE; 

(Không cờ cho hoạt hình, tôi đã tìm thấy nó luôn luôn sinh động.)

+0

Tôi đã thử mã ở trên. Có vẻ như tôi đang làm việc trong một bản demo tôi đã tìm thấy, nhưng dường như không hoạt động trong mã của tôi, Bạn có ý tưởng gì không? hiện đang sử dụng self.searchDisplayController? .setActive (sai, hoạt ảnh: true) để loại bỏ Bộ điều khiển Tìm kiếm, nhưng tôi lo sợ vì mã không dùng nữa của nó. – vinbhai4u

+0

@ vinbhai4u khó nói với nhận xét nhỏ của bạn. Bạn nên gửi một câu hỏi mới, nơi bạn giải thích mọi thứ chi tiết hơn. – Nick

+0

Mã trên hoạt động tốt – wuf810

4

đối với iOS 8, UISearchController được sử dụng, để đạt được hủy bỏ nút hành động lập trình, sử dụng:

[self.searchController setActive:NO]; 
Các vấn đề liên quan