我在TTTableViewController
中實現了TTSearchTextFieldDelegate
。TTSearchTextFieldDelegate不調用textField:didSelectObject:
我的頭看起來是這樣的:
#import <Three20/Three20.h>
@protocol SearchTestControllerDelegate;
@class MockDataSource;
@interface SearchTestController : TTTableViewController <TTSearchTextFieldDelegate> {
id<SearchTestControllerDelegate> _delegate;
}
@property(nonatomic,assign) id<SearchTestControllerDelegate> delegate;
@end
@protocol SearchTestControllerDelegate <NSObject>
- (void)searchTestController:(SearchTestController*)controller didSelectObject:(id)object;
@end
我的實現看起來是這樣的:
#import "SearchTestController.h"
#import "MockDataSource.h"
@implementation SearchTestController
@synthesize delegate = _delegate;
//////////////////////////////////////////////////////////////////////////////////
// NSObject
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
_delegate = nil;
self.title = @"Search Test";
self.dataSource = [[[MockDataSource alloc] init] autorelease];
}
return self;
}
- (void)dealloc {
[super dealloc];
}
//////////////////////////////////////////////////////////////////////////////////
// UIViewController
- (void)loadView {
[super loadView];
TTTableViewController* searchController = [[[TTTableViewController alloc] init] autorelease];
searchController.dataSource = [[[MockSearchDataSource alloc] init] autorelease];
self.searchViewController = searchController;
self.tableView.tableHeaderView = _searchController.searchBar;
}
//////////////////////////////////////////////////////////////////////////////////
// TTTableViewController
- (void)didSelectObject:(id)object atIndexPath:(NSIndexPath*)indexPath {
[_delegate searchTestController:self didSelectObject:object];
}
//////////////////////////////////////////////////////////////////////////////////
// TTSearchTextFieldDelegate
- (void)textField:(TTSearchTextField*)textField didSelectObject:(id)object {
[_delegate searchTestController:self didSelectObject:object];
}
@end
方法- (void)didSelectObject:(id)object atIndexPath:(NSIndexPath*)indexPath;
獲取調用和完美的作品。這是爲什麼當TTTableView
中的一個單元格被選中時。
然而,方法- (void)textField:(TTSearchTextField*)textField didSelectObject:(id)object
永遠不會被調用。當我搜索到某個東西后,我在TTTableView
中選擇一個單元格時應該調用此方法。
我在做什麼錯?這基本上是從這裏TTCatalog
的例子:https://github.com/facebook/three20/tree/master/samples/TTCatalog