将UISearchBar绑定到动作中

时间:2010-11-29 22:49:42

标签: objective-c uiwebview uisearchbar uisearchdisplaycontroller

为了让您从一开始就知道,我是iPhone开发的新手,我承担了一项巨大的任务。

首先,我正在编写一个允许您在线购物的应用程序。我们在一个已知的在线购物网站上有一个联盟帐户,正在尝试将我们的应用程序绑定到搜索该网站,并将结果放入表格中,并附带指向该网站的超链接等。

但首先是问题,一次只有一件事:

在Interface Builder中,我有一个搜索栏,还有一个连接到搜索栏的插座。我还有一个IBAction,只是为了把输入到搜索栏的文本存储到一个变量中,然后搜索这个网站(是的,这是一个很棒的动作)。

因为我在IB的这个过程中是如此新颖,我如何将搜索栏与IBAction连接?我知道,愚蠢的问题。

2 个答案:

答案 0 :(得分:0)

假设您没有特定的SEARCH按钮,请将您的View Controller设置为UITextField的代理并在

上实施您的操作
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    // Code here...
    return YES;
}

不要忘记在接口文件中声明协议

@interface ... : ... <UITextFieldDelegate>

完成后,每次在键盘上按下GO / SEARCH键时,它都会调用上面的方法。

[编辑] 以下是Apple Doc供您参考http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html

答案 1 :(得分:0)

您可以将视图控制器设置为IB(或编程)中的搜索栏代理,并实施UISearchBarDelegate协议来定义搜索栏的操作。

作为初学者,您应该熟悉委托模式,因为很多iOS SDK都依赖它(iOS Application Programming Guide是一个很好的起点)。

<强>更新

您需要在搜索栏的UISearchBarDelegate中实施delegate方法。例如,如果您的搜索栏是MyViewController的属性,您可能希望在MyViewController的实现中使用此行:

[self.searchBar setDelegate:self];

就这么简单;现在,只要您在MyViewController中实现了这些方法,就会在相关操作发生时自动调用它们。