Клавиатура не показывает кнопку переключения языка (глобус) с UITextFields - PullRequest
0 голосов
/ 11 марта 2020

У меня есть 2 UITextField в одном UIViewController.

Первый - электронная почта. Когда он получит фокус, на клавиатуре появится кнопка переключения языка (глобус). EMail UITextField with Keyboard

Второй - псевдоним. Когда он получит фокус, клавиатура покажет без кнопки глобуса. Nickaame UITextField with Keyboard

Коды между этими двумя UITextField практически одинаковы. Даже если я изменил псевдоним UITextField на тип клавиатуры в качестве адреса электронной почты UITextField, он не будет отображать кнопку глобуса. Я не знаю, почему второй UITextField всегда не будет отображать кнопку глобуса.

Код следующий:

        mEmail = UITextField(frame: CGRect(x: PADDING,
                                           y: innerY,
                                           width: mInputArea!.bounds.width - PADDING*2,
                                           height: 40))
        mEmail!.textContentType = .emailAddress
        mEmail!.autocapitalizationType = .none
        mEmail!.keyboardType = .emailAddress
        mEmail!.layer.borderColor = ColorDef.background.cgColor
        mEmail!.layer.borderWidth = 1
        mEmail!.layer.cornerRadius = 4
        mEmail!.placeholder = localizedInfoPlist("Account_Email")
        mEmail!.clearButtonMode = .whileEditing
        mEmail!.returnKeyType = .next
        mEmail!.delegate = self
        mInputArea!.addSubview(mEmail!)
        innerY += (PADDING + mEmail!.bounds.height)

        mName = UITextField(frame: CGRect(x: PADDING,
                                          y: innerY,
                                          width: mEmail!.bounds.width,
                                          height: mEmail!.bounds.height))
        mName!.textContentType = .nickname
        mName!.autocapitalizationType = .none
        mName!.keyboardType = .default
        mName!.layer.borderColor = ColorDef.background.cgColor
        mName!.layer.borderWidth = 1
        mName!.layer.cornerRadius = 4
        mName!.placeholder = localizedInfoPlist("Nickname")
        mName!.clearButtonMode = .whileEditing
        mName!.returnKeyType = .next
        mName!.delegate = self
        mInputArea!.addSubview(mName!)
        innerY += (PADDING + mEmail!.bounds.height)

Как мне получить кнопку глобуса на клавиатуре с ником UITextField?

Ответы [ 2 ]

0 голосов
/ 26 марта 2020

Я обнаружил, что мои программные клавиатуры - это Engli sh и Gboard (Google Keyboard). Кнопка глобуса не будет отображаться, когда фокусируется второй UITextField. Я думаю, может быть проблема в том, что Gboard не считается как клавиатура других языков iPhone. Поэтому я добавляю другой язык с помощью «Apple iPhone Keyboard», тогда он показывает кнопку глобуса.

0 голосов
/ 12 марта 2020

Попробуйте это

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var mEmail: UITextField!
    @IBOutlet weak var mName: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        mEmail!.textContentType = .emailAddress
        mEmail!.autocapitalizationType = .none
        mEmail!.keyboardType = .emailAddress
        mEmail!.layer.borderWidth = 1
        mEmail!.layer.cornerRadius = 4
        mEmail!.placeholder = "Account_Email"
        mEmail!.clearButtonMode = .whileEditing
        mEmail!.returnKeyType = .next
        mEmail!.delegate = self

        mName!.textContentType = .nickname
        mName!.autocapitalizationType = .none
        mName!.keyboardType = .default
        mName!.layer.borderWidth = 1
        mName!.layer.cornerRadius = 4
        mName!.placeholder = "Nickname"
        mName!.clearButtonMode = .whileEditing
        mName!.returnKeyType = .next
        mName!.delegate = self
    }

    func textFieldShouldReturn(_ textField: UITextField) -> Bool
    {
        switch textField
        {
        case self.mEmail:
            self.mName.becomeFirstResponder()
            break
        default:
            textField.resignFirstResponder()
        }
        return true
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...