2012-08-06 23 views
0

我有一個頁面的應用程序與幾個文本字段。一個字段是一個下拉菜單,用戶可以通過該菜單選擇要填寫的文本字段(text1)。在此文本字段(text1)填充後,如何自動更新其他文本字段(text2,text3等)。如何動態填充iOS應用程序中的文本字段

例如:我有三個文本字段,text1,text2,text3。在後端,我在它們之間有一個匹配的數組列表,所以text1的值將能夠爲text2和text3找到適當的值。但是,如何在用戶更改text1的值後動態更新text2和text3。

另一個更基本的問題是:如何在文本字段中顯示文本字符串在viewdidload?
例如:我已經從數據庫檢索到值,如何在加載視圖時在文本字段中顯示此值。

回答

1

好吧,我會嘗試一個解決的一個問題:

第一負載文本字段的顯示。 創建一個標籤的出口來保存您的文本。 例子 - 啓動.h文件中

@property (weak, nonatomic) IBOutlet UILabel *textbox1; 

現在在Interface Builder中,拖出一個標籤,然後連接剛纔拖動與物業你設置的標籤。

現在你有一個插座來存儲你的價值。

現在把東西在裏面去.M在-(void)viewDidLoad文件中添加這樣的事情:

self.textbox1.text = @"some text to display"; 

這應該讓屏幕上的內容。

現在,如果要在用戶輸入過程中或之後動態更新其他屏幕標籤,則需要實現文本字段委託。它有點複雜,試圖解釋整個事情,但基本上在.h文件中您的實現線應該是這樣的:

@interface YourViewControllerNameHere : UIViewController <UITextFieldDelegate> 

然後在.m文件你有幾個變化,使

首先在viewDidLoad加入這一行

self.textbox1.delegate = self; //this tells the UILabel to send changes to your program 

然後在一些開放空間,你可以實現這些回調方法: 後運行程序和記錄會告訴你何時何地事情正在發生。

基本上,你根據你想要做的事情從正確的方法調用你的代碼。

- (void)textDidChange:(id<UITextInput>)textInput { 
    NSLog(@"text did change"); 
} 

- (void)textFieldDidBeginEditing:(UITextField *)textField { 
    NSLog(@"text field did begin editing"); 
} 

-(void)textFieldDidEndEditing:(UITextField *)textField { 
    NSLog(@"text field did end editing"); 
} 

-(void)textWillChange:(id<UITextInput>)textInput { 
    NSLog(@"text will change"); 
} 

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    NSLog(@"text field should change characters in range"); 
    //if this is disabled no character will appear 
    //use to filter out bad characters 
    return YES; 
} 

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    NSLog(@"text field should return"); 
    return YES; 
} 
相關問題