2011-09-16 28 views
5

Tôi có chế độ xem với UISearchBar trong đó. Tuy nhiên, khi nút "X" trên thanh tìm kiếm được nhấp, nó sẽ xóa bàn phím nhưng không xóa văn bản trong trường văn bản của thanh tìm kiếm. Những gì tôi muốn là: Khi người dùng nhấp vào nút x, văn bản trong trường văn bản được đặt lại nhưng bàn phím vẫn hoạt động.Đặt lại văn bản trong trường văn bản của UISearchBar khi nút X được nhấp, nhưng không từ chức firstresponder

Làm thế nào tôi có thể làm điều này?

Trả lời

0

thử thực hiện phương pháp UISearchBarDelegate-(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar và trả lại NO kết quả.

ví dụ .:

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar 
    { 
     return NO; 
    } 
+0

Chẳng phải giúp tôi chút nào. – Magnus

8

Điều này dường như làm các trick cho tôi. Hãy chắc chắn rằng View Controller của bạn là một UISearchBarDelegate

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 
{ 
    searchBar.text = @""; 
} 
+0

điều này không kích hoạt khi nút "X" nhỏ trong trường văn bản được nhấp. Điều này chỉ được kích hoạt nếu thanh tìm kiếm hiển thị nút hủy bên cạnh trường văn bản. – darwin

+0

Đây không phải là những gì câu hỏi yêu cầu. Nút X không phải là nút hủy, đó là nút rõ ràng – Chackle

4

Chỉ cần thiết lập văn bản để nil trong searchBarCancelButtonClicked phương pháp đại biểu:

searchBar.text = nil; 
+0

điều này không kích hoạt khi nút "X" nhỏ trong trường văn bản được nhấp. Điều này chỉ được kích hoạt nếu thanh tìm kiếm hiển thị nút hủy bên cạnh trường văn bản. – darwin

0

để xóa văn bản sử dụng này searchBar.text = @"";

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