2011-04-30 68 views

回答

1

您可以使用下面的代碼它:

Typein2.h - 在3個文本框聲明類。所述 「textFieldBeingEdited」 文本字段是知道哪些文本框(文本或文本2)正被編輯

#import <UIKit/UIKit.h> 

@interface Typein2 : UIViewController <UITextFieldDelegate> { 

    UITextField *text1; 
    UITextField *text2; 

    UITextField *textFieldBeingEdited; 

} 

@property (nonatomic, retain) IBOutlet UITextField *text1; 
@property (nonatomic, retain) IBOutlet UITextField *text2; 

@end 

在viewDidLoad方法執行下列步驟:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    text1.delegate = self; 
    text2.delegate = self; 

    [[NSNotificationCenter defaultCenter] 
    addObserver:self 
    selector:@selector(changeBothFieldsText:) 
    name:UITextFieldTextDidChangeNotification 
    object:nil ] ; 
} 

TextField的委託方法:

-(void)textFieldDidBeginEditing:(UITextField *)textField { 

    if ([textField isEqual:text1]) { 
     textFieldBeingEdited = text1; 
    } 
    else 
     textFieldBeingEdited = text2; 

} 

changeBothFieldsText方法:

-(void)changeBothFieldsText:(NSNotification*)notification { 

    if ([textFieldBeingEdited isEqual:text1]) { 
     text2.text = text1.text; 
    } 
    else 
     text1.text = text2.text;  
} 
+0

可以肯定的是,用'[textField isEqual:text1]替換指針比較'(textField == text1)'' – 2011-04-30 10:39:39

+0

@Bartosz改變了它,謝謝 – 2011-04-30 10:53:35

1

我看不出爲什麼你無法將更改捕獲到第一個UITextView中的文本中,然後在第二個文本中進行更改。通知UITextViewTextDidChangeNotification和文本屬性應該給你你需要的。

+0

我使用uitextfield而不是uitextview,但感謝您的答案。 – flaviusilaghi 2011-04-30 08:21:04