SearchBar文本仅适用于viewDidLoad

时间:2013-11-06 05:48:36

标签: ios iphone objective-c uiwebview uisearchbar

我有显示内容UIWebView。我需要在webview中搜索一些文本。我使用了UISearchBar。但代码不是搜索和突出显示。

以下代码无效:

.h文件:

@interface detailsArtViewController : UIViewController<UISearchBarDelegate>
{

    UISearchBar *searchbar;

}

.m文件:

-(void)viewDidLoad
{
   searchbar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];


searchbar.delegate=self;

[wbCont addSubview:searchbar];
}

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar 
{
     NSLog(@"search is %@",searchBar.text);

[self highlightAllOccurencesOfString:searchBar.text];
}

2 个答案:

答案 0 :(得分:1)

正确的方法是

- (void)viewDidLoad 

- (void)ViewDidLoad

您应该在-viewDidLoad方法中包含此内容:

[super viewDidLoad];

我不完全确定你的意思是“不工作”,但是在第一种方法中你将搜索栏绘制到视图中,在第二种方法中......你没有。

答案 1 :(得分:1)

您是否为UISearchBar

设置了委托

在您的参考链接中,他们为UISearchBar

设置了委托
@interface ViewController : UIViewController <UISearchBarDelegate>
{
 UISearchBar *mysearchbar;
}

他们正在XIB中设置委托。如果您不使用XIB。集合

委托mysearchbar.delegate =self;

然后只委托UISearchBar喜欢的方法,

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar 

将被称为

请更改.m文件代码,如下所示

-(void)viewDidLoad
{
  [super viewDidLoad];
    searchbar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
    searchbar.delegate=self;
    [wbCont addSubview:searchbar];
}

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar 
{
      //  NSString *search=[NSString stringWithFormat:@"Code"];
      NSString *search=[NSString stringWithFormat:@"%@",searchBar.text];
      NSLog(@"search is %@",search);
      [self highlightAllOccurencesOfString:search];
}