UISearch栏没有调用searchBarTextDidBeginEditing

M P*_*des 6 uisearchbar uisearchbardelegate ios

我有一个简单的视图控制器的UISearchBar和uitable.我的问题是,当点击搜索栏时,我看到委托函数searchBarShouldBeginEditing被调用但不是searchBarTextDidBeginEditing(并且因为该键盘未打开且搜索不可编辑)

我试图实现委托函数searchBarShouldBeginEditing 返回YES,将searchbar设置为第一响应者,但是我没办法调用searchBarTextDidBeginEditing ...

知道会发生什么事吗?

一些代码:

或者Controller.h

@interface ViewController : UIViewController <UISearchBarDelegate>
{
   UISearchBar * searchbar;
}

@property (nonatomic, retain) IBOutlet UISearchBar* searchbar;

@end
Run Code Online (Sandbox Code Playgroud)

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??");  
}
Run Code Online (Sandbox Code Playgroud)

我的班级有很多代码(这肯定会影响搜索栏)但是如果有人遇到类似搜索栏的问题,那么它的响应就会非常苛刻;)

我试着只使用搜索栏进行简单的应用程序,显然它有效...

编辑:

测试了一下我发现它与uisearchbar没有关系,因为我添加了一个TextField得到相同的结果(只是调用了textFieldShouldStartEditing委托函数)

应用程序在UITabBar cotroller中有所有视图控制器,但我认为这不会导致所有这些混乱......

EDITING2:

真奇怪的行为:将IBAction函数设置为UITextfield的TouchDown事件可以很好地工作,但将IBAction函数设置为EditingDidBegin永远不会被触发...

为什么这个事件不能被调用?

def*_*vol 13

你设置了委托属性了吗?

searchbar.delegate = self;
Run Code Online (Sandbox Code Playgroud)