1

我有一个文本字段和一个按钮。当按钮被按下时,它会调用一个例程。我希望退出时的文本字段结束调用相同的例程,而不必复制代码。ViewController.h 在下面

    #import <UIKit/UIKit.h>

@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activityind;
@property (weak, nonatomic) IBOutlet UITextField *search;

- (IBAction)calculate:(id)sender;

@end
4

2 回答 2

0

在 ViewController.h 中像这样实现 UITextFieldDelegate :

@interface ViewController : UIViewController <UITextFieldDelegate>

然后使用方法

-(BOOL)textFieldShouldReturn:(UITextField *)textField

并调用您的 IBAction 和 resignFirstResponder,我还会自动启用返回键。

于 2012-07-17T01:26:22.390 回答
0

[编辑1]

在您的 viewController 标头中:

@interface ViewController : UIViewController <UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activityind;
@property (weak, nonatomic) IBOutlet UITextField *search;

-(void)doSomeWork;
-(IBAction)calculate:(id)sender;

@end

只需在第二层例程中实现该功能。

在您的 viewController.m 文件中:

-(BOOL)textFieldShouldReturn:(UITextField *)textField{
    if(search == textField){
        [textField resignFirstResponder];
        [self doSomeWork];
    }
    return YES;
}

-(void)doSomeWork{
    // Do whatever you want to do here!!!
}

-(IBAction)calculate:(id)sender{
    [self doSomeWork];
}

在您的 xib 文件中,您必须将按钮连接到“计算”操作,搜索到正确的 UITextField。

您可以在 Interface Builder 中以图形方式或在代码中设置 UITextField 的委托。如果在代码中,则在 viewController.m 文件中添加以下行:

search.delegate = self;

到您的 viewDidLoad 方法如下:

-(void)viewDidLoad{
    [super viewDidLoad];
    search.delegate = self;
}
于 2012-07-17T03:16:22.643 回答