2015-05-08 42 views
0

我有一個包含多個文本字段的類。其中兩個文本框允許用戶輸入密碼和密碼確認。UITextfield指向另一個不更新文本的UITextfield

@property (nonatomic, strong) UITextfield *password; 
@property (nonatomic, strong) UITextfield *passwordConfirmation; 

我現在已經創建了一個處理顯示密碼強度的新類。該類包含2個屬性密碼和密碼確認(以及處理密碼檢查和顯示強度的其他代碼)。

@interface PasswordChangeView : UIView 

@property (nonatomic, strong) IBOutlet UITextfield *password; 
@property (nonatomic, strong) IBOutlet UITextfield *passwordConfirmation; 

在第一個類的內部,我創建了PasswordChangeView屬性並將兩個屬性設置爲原始屬性。

@property (nonatomic weak) IBOutlet PasswordChangeView *passwordChangeView; 

self.password = self.passwordChangeView.password; 
self.passwordConfirmation = self.passwordChangeView.passwordConfirmation; 

我已經檢查了調試器和指針是一樣的。

但是,當我將文本輸入到:self.passwordChangeView.password時,self.password中的文本保持不變。

我會認爲,因爲它們都指向同一個對象,所以更改一個UITextfield中的文本會更新另一個。

如果問題不夠清楚,請讓我知道,我會馬上編輯。任何幫助非常感謝。

非常感謝。

+0

讓UIView包含兩個UITextFields密碼和passwordConfirmation的目的是什麼?你可以直接把它們放到你正在實現的UIViewController中,不是嗎? –

+0

我應該澄清。新視圖具有更多功能。它包含一個uiview來顯示密碼的強度以及調用庫的代碼,該庫處理檢查密碼的強度的邏輯。 – pls

回答

0

由於指針是相同的,它們現在都指向相同的東西。如果您設置了*b = *a,那麼更改*b的文本將只會導致*a的出口更新。

您需要同時設置兩者的文本,而不更改它們的指針。

+0

感謝您的回覆。原來代碼在不同的地方是錯誤的。我已經留下了更多細節的答案。 – pls

0

事實證明,我在代碼中的其他地方遇到問題,使得它看起來像文本沒有被更新。

我可以證實,通過改變文本:

self.passwordChangeView.password;

self.passwordChangeView.passwordConfirmation; 

確實正在發生變化的是被指向這些其他2個文本框的文本。