2012-07-17 93 views
1

我有一個文本字段和一個按鈕。當按下按鈕時,它調用一個例程。我希望退出時的textfield結束調用相同的例程,而不必複製代碼。 ViewController.h低於iPhone連接textfield結束退出事件按鈕按下事件

#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 

回答

0

在ViewController.h實施UITextFieldDelegate像這樣:

@interface ViewController : UIViewController <UITextFieldDelegate> 

,然後使用方法

-(BOOL)textFieldShouldReturn:(UITextField *)textField 

,並致電IBAction爲和resignFirstResponder,我也要自動啓用返回鍵。

+0

在viewcontroller.m?如果是這樣,我已經有了,見下: - (IBAction)計算:(id)發件人{ //隱藏鍵盤 [search resignFirstResponder]; NSString * query2 = [search.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL * url = [NSURL URLWithString:[NSString stringWithFormat:@「http://www.mathcelebrity.com/namesearch.php?searchInput=%@」,query2]]; NSURLRequest * request = [NSURLRequest requestWithURL:url]; [webView loadRequest:request]; NSTimer * timer; NSTimer * timer; } – 2012-07-17 03:02:11

+0

計算是按鈕按下事件。我期待有相同的例程調用,如果有人按下名稱搜索的uitextfield輸入沒有按計算按鈕 – 2012-07-17 03:11:51

+1

我想我理解,查看我的編輯 – 2012-07-17 03:26:30

0

[EDIT1]

在你的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。

您可以在界面生成器或代碼中以圖形方式設置UITextField的委託。如果代碼,那麼你的viewController.m文件中添加一行:

search.delegate = self; 

您viewDidLoad方法如下:

-(void)viewDidLoad{ 
    [super viewDidLoad]; 
    search.delegate = self; 
} 
+0

但是,該函數的作品,但是,文本字段,我是做一個動作,或只是一個常規的textField沒有行動? 當我做一個動作的textField時,它不讓我使用「搜索」作爲一個訪問器。當我在沒有任何操作的情況下執行文本字段時,我可以訪問它,但我不知道如何從那裏調用該函數。 – 2012-07-17 04:09:39

+0

@DonSevcik - 嘗試上面的代碼集! – trumpetlicks 2012-07-17 16:54:18

+0

我現在正在處理這個問題,我會回報。 – 2012-07-17 20:07:26