我有一个带有uisearchbar和uitable的简单视图控制器。我的问题是,当点击搜索栏时,我看到调用了委托函数searchBarShouldBeginEditing但没有调用 searchBarTextDidBeginEditing(并且因为没有打开键盘并且搜索不可编辑)
我尝试实现委托函数searchBarShouldBeginEditing 返回 YES,将搜索栏设置为第一响应者,但我无法调用searchBarTextDidBeginEditing ...
知道会发生什么吗?
一些代码:
控制器.h
@interface ViewController : UIViewController <UISearchBarDelegate>
{
UISearchBar * searchbar;
}
@property (nonatomic, retain) IBOutlet UISearchBar* searchbar;
@end
控制器.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 控制器内具有所有视图控制器,但我认为这不会导致所有这些混乱......
编辑2:
非常奇怪的行为:将 IBAction 函数设置为 UITextfield 的 TouchDown 事件效果很好,但将 IBAction 函数设置为 EditingDidBegin 永远不会被触发......
为什么这个事件不能被调用??