我是iOS编程的新手,我不确定为什么我的textDidChange功能没有触发.在网上搜索了一堆,但无法找出我的代码和其他人之间有什么不同.这是我的.h和.m文件对于这个视图控制器的样子:
CategoryTableViewController.h:
#import <UIKit/UIKit.h>
#import <Parse/Parse.h>
@interface CategoryTableViewController : UITableViewController
@property (weak, nonatomic) IBOutlet UIBarButtonItem *btnBack;
@property (weak, nonatomic) IBOutlet UISearchBar *txtSearchBar;
@property (strong,nonatomic) NSArray *allCategories;
@property (strong,nonatomic) NSMutableArray *filteredCategories;
//A stack containing the parent categories used to get to the current category.
@property (strong, nonatomic) NSMutableArray *parentCategories;
@end
Run Code Online (Sandbox Code Playgroud)
来自CategoryTableViewController.m的相关代码:
-(void)txtSearchBar:(UISearchBar*)txtSearchBar textDidChange: (NSString*)text
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
我使用Xcode的ctrl + click + drag来创建对头文件中搜索栏的引用.我在textDidChange代码的开头放置断点和打印语句,但它们都没有被调用.有任何想法吗?
小智 5
您需要设置txtSearchBar的delegate属性以使用委托方法.确保添加
self.txtSearchBar.delegate = self;
Run Code Online (Sandbox Code Playgroud)
在ViewDidLoad()中
和委托方法
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
//Do something
}
Run Code Online (Sandbox Code Playgroud)