2011-08-25 39 views
8

Tôi sử dụng chế độ xem bảng với UISearchDisplayController kết hợp với UISearchBar. Thanh tìm kiếm tự động ẩn nút hủy khi không phù hợp, nhưng tôi đang sử dụng bộ điều khiển xem ở trạng thái phương thức - vì vậy tôi muốn luôn hiển thị nút hủy và sử dụng nút này để bật trình điều khiển chế độ xem khi tìm kiếm bị hủy.Luôn hiển thị nút hủy trong UISearchBar

Có cách nào để buộc nút hủy vẫn hiển thị mà không cần tạo thanh tìm kiếm tùy chỉnh không?

+0

gì sẽ xảy ra nếu bạn thiết lập bằng cách gọi phương pháp dụ setShowsCancelButton: hoạt hình: – Saran

+0

Thiết nút để có thể nhìn thấy trong các phương pháp đại biểu không hoạt động, cũng như thế subclassing 'UISearchBar' và trọng tất cả 'showsCancelButton' phương thức. –

Trả lời

2

bạn nên sử dụng màn hình hiển thị đại biểu

- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller 
{ 
    controller.searchBar.showsCancelButton = YES; 
} 
+0

Wow ... Ai cảm thấy câm vì vừa khám phá ra 'showCancelButton' ...? Anh chàng này >> – dooleyo

1

làm việc này

- (void) searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller 
{  
    controller.searchBar.showsCancelButton = YES; 
} 
1

Tôi tìm thấy một solution sau khi tìm kiếm rất nhiều.

Nó hiện đang hoạt động cho tôi. Sau khi thêm vào mã, tôi đã thay đổi lớp trong Trình tạo giao diện để sử dụng lớp thay vì UISearchBar. Tôi cũng đã bật "Hiển thị nút hủy".

Mã:

//NoAnimatingSearchBar.h 
@interface NoAnimatingSearchBar : UISearchBar 

@end 

//NoAnimatingSearchBar.m 
#import "NoAnimatingSearchBar.h" 

@implementation NoAnimatingSearchBar 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     // Initialization code 
    } 
    return self; 
} 

- (void) _destroyCancelButton { 
    NSLog(@"_destroyCancelButton"); 
} 

-(void)_setShowsCancelButton:(BOOL)showsCancelButton { 
    NSLog(@"_setShowsCancelButton:(BOOL)showsCancelButton"); 
} 
@end 
+0

Tôi biết chủ đề này cũ, nhưng có vẻ như giải pháp này sử dụng API riêng tư và có khả năng sẽ dẫn đến ứng dụng bị từ chối trong quá trình xem xét ứng dụng. –

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