2013-11-01 66 views
0

我有一個只讀文本字段。我希望當值更改爲此字段時,還要設置另一個文本字段。哪些事件用於只讀文本字段時文本更改

我應該使用哪個事件。嘗試與editingChanged,但它沒有得到調用。 請幫忙。

+0

如何改變只讀文字?如果它正在改變,那麼你怎樣才能將它稱爲只讀文本? –

回答

0

如果文本字段是隻讀的,那麼您必須以編程方式設置文本,對吧?在這種情況下,當您設置文本時,請同時設置其他文本字段的文本。

如果我誤解了你的問題,以及用戶編輯文本框,你可以聽的變化是這樣的:

[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventValueChanged]; 

和處理回調方式如下:

- (void)textFieldDidChange:(UITextField *)textField 
{ 
    // Handle change 
} 
0

從蘋果文檔

textFieldShouldBeginEditing:詢問委託人是否應該開始編輯 在指定的文本字段中。

  • (BOOL)textFieldShouldBeginEditing:(*的UITextField)文本框

參數文本字段 - 爲其編輯即將 開始的文本字段。

返回值是,如果編輯會話應該啓動;否則, 否禁止編輯。

討論當用戶執行的動作通常會在 開始編輯會話時,文本字段會首先調用此方法至 ,看看是否應該實際進行編輯。在大多數情況下, 只會從此方法返回YES以允許編輯繼續。

委託實現此方法是可選的。如果不存在 ,則繼續進行編輯,就好像該方法返回YES一樣。

所以使用這樣的:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    BOOL editable; 
    if (textField == myReadOnlyTextField) { 
     editable = NO; 
    } else if (textField == myEditableTextField) { 
     editable = YES; 
    } else { 
     // editable = YES/NO/Other Logic 
    } 
    return editable; 
} 

而且爲了委託方法被調用的接口應符合UITextfieldProtocol:添加到您的.h文件中<UITextFieldDelegate>所以它看起來是這樣的:

@interface ViewController : UIViewController <UITextFieldDelegate> 
0

如果您在ios中實現,請實施此委託方法。

- (BOOL)textField:(UITextField *)textField 
shouldChangeCharactersInRange{} 

如果您在MacOS上執行,然後使用下面的委託方法: -

 -(void)controlTextDidChange