2016-09-22 36 views
17

Here's the documentation on UITextField's textContentType property如何獲得UITextField的textContentType屬性來執行任何操作?

使用這個屬性給鍵盤和有關用戶輸入內容的預期語義系統信息。例如,您可以爲用戶填寫的文本字段指定UITextContentTypeEmailAddress以接收電子郵件確認。當您提供有關您希望用戶輸入到文本輸入區域的內容的信息時,系統可以在某些情況下自動選擇合適的鍵盤,並改進鍵盤更正和主動整合其他文本輸入機會。

由於每個文本輸入區域的預期語義應儘可能具體標識,因此不能將多個值組合爲一個textContentType屬性。有關可以使用的可能值,請參閱Text Content Types;默認情況下,此屬性的值爲nil

這似乎很簡單,但我不知道如何使這實際上做任何事情。我創建了一個簡單的演示應用程序,添加了一個文本字段,並設置了self.textField.textContentType = UITextContentTypeEmailAddress。然後我用iOS 10.0.1在iPhone 7上運行它。

至少我期望它能夠自動選擇電子郵件鍵盤,而不必明確地設置它。它不 - 我得到我的iPhone上的標準鍵盤。

我還希望它顯示我自己的QuickType建議的電子郵件地址。我在其他地方看到過這種情況 - 如果我在Safari中,並且它檢測到我在編輯電子郵件字段,則會將我的家庭和工作電子郵件地址顯示爲建議。再說一遍,即使文檔建議它應該這樣做,它也不會這樣做。

即使我也設置keyboardTypeUIKeyboardTypeEmailAddress,我仍然沒有得到我期待的QuickType建議。

There's a WWDC talk that discusses this new capability,但從來沒有任何建議您需要做任何事情,除了設置這個單一的屬性。

我錯過了一些步驟,還是這實際上沒有做我所期待的?

+1

FWIW,我沒有看到它要麼工作。我將它設置爲輸入「地點」或位置,或者對於我們輸入地名和AFAICT的字段的任何選項,它都沒有影響。 – Hunter

+0

不能在這裏工作,不能想到任何其他選項或應用程序的元數據,將使其工作:(在Safari中工作。第三方應用程序:在優步WWDC的demo'd - 我想知道,它仍然工作在優步? –

+0

仍然在iOS 10.2中破碎 – fabb

回答

5

這最終在iOS 11的第三方應用程序中得到支持。我有一個使用安裝在iOS 11 beta 1上的iOS 10.3 SDK構建的應用程序。它包含textContentType = UITextContentTypeEmailAddress的字段,這些字段正確地建議我的聯繫人卡片上的兩個電子郵件地址。我也有與textContentType = UITextContentTypePostalCode正確地建議我的郵政編碼的字段。

除了現有的類型,iOS 11還增加了UITextContentTypeUsernameUITextContentTypePassword,可用於支持Password AutoFill for Apps

相關問題