1
votes

Je veux l'utiliser comme UIButton lorsque je clique sur UITextField

J'ai créé un écran de clavier personnalisé sur tvOS. Si possible, appuyez sur UITextField tel quel, je souhaite passer à la vue clavier personnalisée. Mais en appuyant sur UITextField, le clavier système s'affiche toujours. Que dois-je faire maintenant?

entrez la description de l'image ici


0 commentaires

3 Réponses :


0
votes
textField.inputView = UIView()

3 commentaires

Merci pour votre réponse! J'ai essayé. Mais il s'est écrasé.C'est parce qu'il s'agit de tvos. *** Arrêt de l'application en raison d'une exception non interceptée 'NSInvalidArgumentException', raison: 'NSLayoutConstraint for >: Un multiplicateur de 0 ou un second élément nul avec un emplacement pour le premier attribut crée une contrainte illégale d'un emplacement égal à une constante. Les attributs d'emplacement doivent être spécifiés par paires. '


@flyoo - vous devriez mettre à jour votre question avec ces informations


@flyoo crée un UIView par programme et définit la contrainte, puis défini dans inputview. Je pense que ça marche



1
votes

1) Faites en sorte que le contrôleur de vue implémente ce délégué: UITextFieldDelegate convenient

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    // HERE, open your keyboard or do whatever you want
    return false
}

2) Renvoyez false dans textFieldShouldBeginEditing code>, donc le champ de texte ne répond pas et le clavier ne s'ouvre pas. À la place, ouvrez le vôtre ou faites ce que vous voulez.

class YourViewController: UIViewController, UITextFieldDelegate {
    // ...
    yourTextField.delegate = self
    // ...
}


1 commentaires

Merci pour votre réponse! J'ai pu afficher mon clavier!



0
votes
func textFieldDidBeginEditing(_ textField: UITextField) {
    textField.addTarget(self, action: #selector(gettextFieldFunction), for: UIControlEvents.touchDown)
}

0 commentaires