2013-02-10 36 views
1

我與性能myUsernamemyPassword用戶類,我想在UI我的文本字段將字符串值傳遞給名爲link的AppDelegate的方法,做一些背景NSTask東西,到用戶對象的方法setUserCredentialsNSSecureTextField stringValue的總是「(空)」

但是,使用NSSecureTextField檢索密碼,然後將其傳遞給NSLog以驗證總是打印(空)到屏幕? NSTextField工作正常。

[self.activeUser setMyUsername:self.myUsernameTextField.stringValue]; 
[self.activeUser setMyPassword:self.myPasswordSecureTextField.stringValue]; 
NSLog(@"Username: %@", self.activeUser.myUsername); 
NSLog(@"Password: %@", self.activeUser.myPassword); 

打印:

2013-02-09 23:34:58.491 LabSync[25215:303] Username: jon 
2013-02-09 23:34:58.491 LabSync[25215:303] Password: (null) 

完全新的OBJ-C,可可和XCode中。無法在文檔中找到任何內容或對此進行搜索。除了防止複製,剪切和粘貼以及查看字符串(或者我讀取)之外,安全字段應與常規字段相同。

如何獲取密碼值?

+0

如果您嘗試輸出stringValue,它是否仍然爲空?正如在,如果你做NSLog(@「密碼字符串:%@」,self.myPasswordSecureTextField.stringValue]); – ryanwils 2013-02-10 03:59:15

+1

我剛剛創建了一個空白的Mac應用程序,其中包含一個安全的文本字段和一個記錄它的按鈕,它對我來說工作得很好。確保它已連接到IB(或以編程方式正確初始化)並且您的setMyPassword正在工作(可能試着將其設置爲「TestPassword」或其他) – ryanwils 2013-02-10 04:11:57

+0

顯示整個頁面代碼 – 2013-02-10 05:05:54

回答

1

Interface Builder中存在一個問題,偶爾出口不能正確連接,經常導致你的出口爲零。如果你要在一個nil對象上調用stringValue,它將直接返回nil(在控制檯中顯示爲(null))。

你可能想首先的檢查,如果出口在應用程序,你可以通過做登記:某處後視圖加載完畢後會執行

NSLog(@"password field = %@", self.myPasswordSecureTextField); 

廣場。如果它顯示爲空白,請確保您已將文本字段實際連接到您的插座。如果你有,然後嘗試建立一個新的出口,或重命名現有的,並看看會發生什麼。

我明白,最後的建議可能看起來有點奇怪,如果右下奇怪,但我已經看到這個問題幾次了,這是以前的修復。

希望這可以幫助一些。

+0

IB中存在一個錯誤,我很震驚!可能仍然不是這樣。無論是出口沒有設置或操作檢查得太早,即在init中而不是awakeFromNib或查看特定的類似方法 – 2013-02-10 15:31:28

+0

不知何故該領域斷開自己的出口。我不確定這是怎麼發生的,因爲我首先使用控制拖動來創建它。儘管工作,謝謝! – Hiroshi 2013-02-11 15:59:27