我有一个简单的视图控制器与uisearchbar和一个uitable.
我的问题是,当点击搜索栏时,我看到委托函数searchBarShouldBeginEditing被调用但不是searchBarTextDidBeginEditing(并且因为该键盘未打开且搜索不可编辑)
我的问题是,当点击搜索栏时,我看到委托函数searchBarShouldBeginEditing被调用但不是searchBarTextDidBeginEditing(并且因为该键盘未打开且搜索不可编辑)
我试图实现委托函数searchBarShouldBeginEditing返回YES,将searchbar设置为第一响应者,但是我没办法调用searchBarTextDidBeginEditing …
知道会发生什么事吗?
一些代码:
或者Controller.h
@interface ViewController : UIViewController <UISearchBarDelegate> { UISearchBar * searchbar; } @property (nonatomic,retain) IBOutlet UISearchBar* searchbar; @end
Controller.m或者
@synthesize searchbar; - (BOOL)respondsToSelector:(SEL)sel { NSLog(@"Queried about %@",NSStringFromSelector(sel)); return [super respondsToSelector:sel]; } - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { NSLog(@"searchBarShouldBeginEditing -Are we getting here??"); return YES; } -(void) searchBarTextDidBeginEditing:(UISearchBar *)searchBar { NSLog(@"searchBarTextDidBeginEditing -Are we getting here??"); }
我的班级有很多代码(这肯定会影响搜索栏)但是如果有人遇到类似搜索栏的问题,那么它的响应就会非常苛刻;)
我试着只使用搜索栏进行简单的应用程序,显然它有效…
编辑:
测试了一下我发现它与uisearchbar没有关系,因为我添加了一个TextField得到相同的结果(只是调用了textFieldShouldStartEditing委托函数)
应用程序在UITabBar cotroller中有所有视图控制器,但我认为这不会导致所有这些混乱……
EDITING2:
真奇怪的行为:将IBAction函数设置为UITextfield的TouchDown事件可以很好地工作,但将IBAction函数设置为EditingDidBegin永远不会被触发…
为什么这个事件不能被调用?
解决方法
你设置了委托属性了吗?
searchbar.delegate = self;