5

我研究过这个问题。看起来这是一个常见问题,但我尝试过的都没有奏效。我对 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

当我单击“搜索”按钮时,没有任何输出。我错过了什么?谢谢。

4

1 回答 1

6

(在问题编辑中回答。转换为社区 wiki 答案。请参阅没有答案的问题,但问题在评论中解决(或在聊天中扩展)

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(). 欢呼!继续下一个挑战。

于 2015-02-04T16:14:18.193 回答