我研究过这个问题。看起来这是一个常见的问题,但我尝试过的任何工作都没有。我对iPhone应用程序开发和Objective C都很陌生。此时我想要做的就是在搜索栏字段中输入一个字符串,并在点击键盘上的搜索按钮时返回NSLog()中的值。
我的头文件如下所示:
@interface ListingMapViewController : UIViewController <UISearchBarDelegate>
@property (weak, nonatomic) IBOutlet UISearchBar *searchBar;
@end
我在我的班级文件中有这个:
#import "ListingMapViewController.h"
@interface ListingMapViewController ()
@end
@implementation ListingMapViewController
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
searchBar.delegate =self;
[self handleSearch:searchBar];
NSLog(@"User searched for %@", searchBar.text);
}
@end
单击“搜索”按钮时,没有任何输出。我错过了什么?感谢。
答案 0 :(得分:6)
(在问题编辑中回答。转换为社区维基回答。请参阅Question with no answers, but issue solved in the comments (or extended in chat))
OP写道:通过在视图加载时设置searchBar委托来解决此问题。我想在
searchBarSearchButtonClicked
设置它太晚了。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self.searchBar setDelegate:self];
//self.searchBar.delegate = self; <-- also works
}
现在,当我单击键盘上的“搜索”按钮时,搜索栏字段中的文本将输出到
NSLog()
。欢呼!接下来的挑战。