截至目前,我想選擇退出iOS 11給出的新選項,即在應用程序中建議密碼。當我在iOS 11上運行應用程序時,我在鍵盤上獲得了自動填充選項,並且我的用戶名和密碼textfield甚至沒有顯示出來。iOS 11禁用密碼自動填充附件查看選項?
所以,我的問題是,我怎麼能一起禁用新的密碼自動填充功能,所以鍵盤上的按鍵根本沒有顯示,整體行爲與iOS 11前一樣?
截至目前,我想選擇退出iOS 11給出的新選項,即在應用程序中建議密碼。當我在iOS 11上運行應用程序時,我在鍵盤上獲得了自動填充選項,並且我的用戶名和密碼textfield甚至沒有顯示出來。iOS 11禁用密碼自動填充附件查看選項?
所以,我的問題是,我怎麼能一起禁用新的密碼自動填充功能,所以鍵盤上的按鍵根本沒有顯示,整體行爲與iOS 11前一樣?
您可以嘗試在這裏不同的答案在於結束其可能能夠移除accessoryView的。但是這留下了一些錯誤。
How to hide inputAccessoryView without dismissing keyboard
你可以嘗試也許是爲了實現自定義鍵盤,只爲密碼字段。也嘗試禁用您的文本框的建議,我認爲這也隱藏了accessoryView。
編輯: 蘋果論壇上沒有答案在同一個問題上的。此外,我不能在官方uitextfield文檔中找到任何關於此的信息。
self.passwordTextField.autocorrectionType = NO;似乎沒有工作,鑰匙扣的跡象仍然存在,
self.passwordTextField.textContentType = UITextContentTypeName;
上面的代碼確實有效,但是如果用戶設置了他們的Apple ID帳戶,那麼Apple ID的名稱將顯示在鍵盤上,您不能通過將autocorrectionType設置爲No來禁用它,不確定蘋果是否仍然完善這個自動填充功能,現在它的錯誤率很高
該功能可以通過指定既不是用戶名也不是密碼的內容類型來禁用。例如,如果用戶要輸入電子郵件地址,你可以使用
usernameTextField?.textContentType = .emailAddress
有趣的是,我在密碼字段上方有一個電子郵件地址字段,並且電子郵件地址字段提供了自動填寫。 –
@BradRoot更改您的密碼字段textContentype呢!如果您的電子郵件已存儲在鑰匙串中,那麼它將在快捷欄中顯示信息,所以對用戶.nickname更好,或者如果#available(iOS 10.0,*)嘗試此代碼{ self.passwordTextField.textContentType = UITextContentType.init(rawValue: 「」) }其他{ //回退較早版本 } – Sahil
通過分配虛擬textContentType
到密碼文本字段可以「關閉」用戶名/密碼組合檢測。
passwordFormField.textContentType = UITextContentType("dummy")
該關閉的關鍵符號兩個密碼字段和它之前的電子郵件領域,這樣你不使用一個預定義值,你避免顯示在鍵盤附件無關建議視圖。
爲用戶默認啓用自動填充功能。 iOS將鑰匙串中的所有密碼保存在應用程序的鍵盤中。 UITextView
和UITextField
自動考慮自動填充密碼。您可以通過指定既不是用戶名也不是密碼的內容類型來禁用,但如果內容類型信息已存儲在鑰匙串中,它將顯示在快捷欄中。所以最好分配空的UITextContentType
類型,它不會顯示快捷欄。
例子:
if #available(iOS 10.0, *) {
self.textField.textContentType = UITextContentType("")
} else {
// Fallback on earlier versions
}
這爲我工作:
if #available(iOS 11, *) {
// Disables the password autoFill accessory view.
textField.textContentType = UITextContentType("")
}
確保你安裝所有的UITextField
對象是這樣的。例如,如果您有一個UITextField
對象,其中用戶必須輸入他的電子郵件地址,而另一個用戶必須輸入密碼才能將UITextContentType("")
分配給其兩個textContentType
屬性。否則,它將無法工作,並且自動填充配件視圖仍將顯示。
ios11中的一個非常簡單的方法爲我工作。假設你的iboutlets是usernametextfield和passwordtextfield。您的視圖控制器的viewDidLoad方法中的()函數,它擁有兩個outlest使用下面的代碼
usernametextfield.textContentType = UITextContentType("")
passwordtextfield.textContentType = UITextContentType("")
此之後,你不會看到自動填寫附件選項,當你在你的文本框的挖掘。
你可以這樣
extension UITextContentType {
public static let unspecified = UITextContentType("unspecified")
}
後
爲UITextContentType添加擴展,你可以用它
if #available(iOS 10.0, *) {
passwordField.textContentType = .unspecified
}
目標C版本:
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"10.0")) {
self.passwordTextField.textContentType = @"";
self.confirmPasswordTextField.textContentType = @"";
}
其中
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
Objective-C的
if (@available(iOS 10, *)){
self.tfEmail.textContentType = @"";
self.tfPassword.textContentType = @"";
}
這爲我工作。
嘗試將用戶名和密碼字段的textContentType屬性設置爲'.textContentType' - 這應該告訴iOS 11您的字段*不是*用戶名/密碼字段(儘管它們是)並且防止顯示附件視圖;類似於'self.passwordField.textContentType = .textContentType' – Paulw11
@zumzum你有沒有得到任何解決方案。請分享 –
這對我來說也是一個問題。自動填充功能出現在註冊的字段中,這是不需要的。我希望他們只是在登錄領域。奇怪的東西。 –