2017-09-24 112 views
1

我已經實現了在iOS 11上支持密碼自動填充所需的所有應用程序和服務器更改,並且運行良好。我希望它能更好一點。如何檢測用戶何時在UITextField上使用密碼自動填充

我的用戶名和密碼字段是UITextFields。我想確定一個用戶何時「自動填充」了兩個UITextField中的一個,這樣我就可以繼續下一步。目前,用戶自動填充項目,然後需要按下屏幕上的鍵盤上的「下一步」按鈕才能前進。我想代表用戶觸發此操作。

WWDC2017密碼自動填充會話說使用UITextFieldTextDidChange。這是有效的,但當用戶在這些字段中手動輸入時也會觸發。

我的想法是將文本的先前版本與新版本的文本進行比較,並假設如果長度從零增加到大於某個最小長度(2或更多),用戶使用自動填充。這應該在大多數情況下都能正常工作,但有可能導致錯誤的觸發(可能會在慢速設備上快速打字)。所以對我來說,這可能是一個有風險的假設。

我很好奇,任何人都發現了一個更確定的方式來確定是否在UITextField上使用了密碼自動填充,或者只是認爲我擔心錯誤的觸發是沒有根據的。

+0

我也想知道用戶是否真的使用密碼自動填充,通過添加使用到應用程序的分析。我們對1Password也是這樣做的。 –

回答

0

我不認爲有更好的解決方案。

我注意到的一件事是自動填充僅在文本字段爲空時啓用。

因此,如果文本字段從空白變爲大於最小密碼/用戶名的長度,那麼它很可能是自動填充/粘貼。我使用shouldChangeCharactersIn來檢測UITextField中的更改。我不確定是否有一種情況,在委託方法被調用之前,可以將鍵盤上的文本組合在一起。

相關問題