[Swift]-[UITextView] Comment supprimer le Couper coller ?
Sur une UITextView je voudrais supprimer le Couper-Coller ? qui en plus apparait en Anglais !!
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Demande à un moteur de recherche "uitextview disable copy cut". Il y a des tas de réponses sur le Net, en .. anglais.
T'as une méthode à override qui te permet de spécifier quelles actions tu peux faire :
Mais tu dois créer une nouvelle classe qui va hériter de UITextField.
Merci a tous les deux.
J'ai un peu tout tripoter en faisant une classe qui hérite d'UITextField. Je n'ai pas vraiment une grande maitrise, mais la fonction canPerformAction: n'est pas appelée...
J'ai tenté l'extension pas une vraie maitrise non plus...
J'ai un peu attendu d'avoir fait plusieurs essais avant de vous remercier.
Est-ce que tu utilises bien ta classe personnalisée qui hérite de UITextField ?
Bien spécifié dans IB, par contre juste changer le nom de la classe dans le code !! Peut-être dois-je recréer l'ourlet ?
J'ai le message suivant qui explique :
"Unknown class UITextFieldNotCC in Interface Builder file."
La déclaration de la classe était initialement faite dans le même ficher, mais maintenant c'est dans un fichier différent ?
Je n'ai pas trop l'habitude et j'ai du zapper quelque chose !!!
Le problème est qu'il n'y parvient pas, sans doute parce que la classe est introuvable dans l'appli. Vérifie que UITextFieldNotCC est bien associé à la target de l'application. (doit être coché dans la barre latérale droite).
donc dans la colonne de droite 3ème icône "Show ..."
Il y avait bien le nom de la classe. Dans la zone module il faut rentrer le nom du Target, ou cocher Inherit From Target juste en dessous.
Je n'ai pas tout-a-fait solutionné mon problème, mais en tous cas je n'ai plus cette erreur et ma classe héritée est bien prise en compte cette fois.
En fait ce que tu disais mais que je ne captais pas... Vraiment merci...
Voilà ce que j'ai fait et le CC n'apparait plus il ne reste que la loupe
En fait mon vrai petit problème n'était pas celui-la, mais simplement d'éviter que cette zone ait une valeur a Zéro qui faisait planté dans la multiplication qui suit.
J'ai vu qu'il existait une solution qui vérifie la saisie et annule soit les lettres soit les chiffres, pour les lettres hormis la double virgule ( qui fait planter grave !! ) avec le clavier numérique c'est difficilement possible. Je ne retrouve plus ce code mais bon pas un vrai problème non plus disons que c'est pour le fun et si des fois ça peut servir.
Si tu implémentés le délégué UITextFieldDelegate, tu as des méthodes qui te permettent d'obtenir l'évènement d'un nouveau caractère qui s'ajoute au champs et de pouvoir l'annuler. Tu peux donc solutionner ton réel problème ainsi.
Tu l'essais sur un appareil ou dans le simulateur ? Si dans le simulateur, c'est parce que tu n'as pas encore réglé la region, etc.
Je ne trouve pas de ce que tu parles. après que tu as saisi le nom de la classe, dont la zone t'aide en proposant ta classe, il n'y a rien à saisir dans la zone module, c'est rempli automatiquement, mais en texte gris
Pour ça, il faut implémenter le UITextFieldDelegate, surtout la méthode
Là dedans, tu peux vérifier n'importe quel caractère, n'oubliant pas que, si le replacementString soit vide, c'est d'une touche de clavier comme supprimer, etc.
Mois, je capte la méthode textFieldShouldBeginEditing pour remplacer le texte formaté avec les chiffres "nus", et textFieldDidEndEditing pour remplacer les chiffres nus avec le texte formaté.
Question : si tu veux empêcher le 0, qu'est-ce que tu veux arriver autrement ? Tu veux bloquer l'utilisateur de quitter la zone ? Tu veux mettre 1 comme défaut ? Quoi ?
@Maggic éventuellement si tu m'en dis un peu plus ? Mais bon ce n'est pas un réel problème non plus ..
@joannaCarter
Gercofis, on 25 Apr 2017 - 11:11 PM, said:
Gercofis, on 21 Apr 2017 - 11:11 PM, said:
Tu l'essais sur un appareil ou dans le simulateur ? Si dans le simulateur, c'est parce que tu n'as pas encore réglé la region, etc.
Je ne trouve pas de ce que tu parles. après que tu as saisi le nom de la classe, dont la zone t'aide en proposant ta classe, il n'y a rien à saisir dans la zone
module, c'est rempli automatiquement, mais en texte gris
quand on sélectionne un texteditafield dans le storyboard on a une colonne a droite qui est éventuellement disponible avec le 3ène icône de la barre on a 2 champs dans la zone custom class le nom et le module c'est dans ce dernier qu'il faut soit inclure le nom du projet soir cocher "Inherite From target". Cette dernière partie semble un peu fantaisiste puisqu'en écrivant ici et en vérifiant la coche a disparue... mais bon plus d'erreur en tous cas.
ça fait pareil sur le simulateur et sur l'iPhone. Mais j'ai observé dans les options du projet je sais plus ou que c'était compilé pour l'anglais...
c'est un peu curieux vu qu'il m'affiche bien des résultats en Euro avec la virgule avant les 2 derniers chiffres..
Tu peux nous montrer une capture d'écran ?
Bah ouais. Il faut changer le langage de développement et verifier que, sur le simulateur, que le langage soit bien Français, que tu as enlevé le langage English (US) de la liste des langages préférés, peut-être ajoutant le English (UK) mais en garant le langage principal comme Français.
Puis, vérifies que la région soit bien France.
Mais, je crois c'est plutôt le langage de développement qu'il faut changer, car c'est le dossier de localisation Base.lproj qui déterminent le langage primaire.
Cherches pour "Localisation native development region" dans la page Info du projet
Côté capture d'écran... Supprimes le texte dans la zone Module - tu devrais y voir "Current - Tempo" en gris. De ce que je peut trouver, il ne faut pas cocher "Inherit from Target"
As-tu essayé de supprimer les liens comme IBAction ou IBOutlet, nettoyer le projet, faire un rebuild, puis reconnecter les IB...
Côté langage, il faut vérifier le langage de développement et supprimer toutes les localisations, puis rajouter français comme localisation Base.
J'ai juste "Tempo" qui est le nom du programme, la coche du "Inherit from Target" se décoche toute seule...
Pour info en passant "Tempo" est une option EDF qui offre des ristournes plus qu'importantes et du coup ça nous fait 6 tarifs ( Bleu, Blanc,Rouge / jour et nuit ). Ceci me permet donc d'évaluer le coût de tel ou tel chauffage ou appareil Kw * temps et d'avoir les 6 tarifs histoire d'évaluer. Je donne ça a qui demande ou qui voudrait faire évoluer ?
L'anglais n'apparaissait que dans le PopUp du CC et maintenant avec la dernière ligne de code ça n'apparait plus.
Il ne me reste plus que l'histoire de la double virgule qui fait planter grave, je suis donc a fond dans l'implantation du délégate.
Initialement c'était disons un exercice disons utile...
C'est toi qui l'a mis là , ou c'est Xcode qui l'a fait ?
Je viens de tester dans une appli test, bien réglée, et j'y trouve le français.
pour la première question c'est moi qui ait coché "Inherit from Targuet", et a l'utilisation suivante xCode me l'a enlevé ? Vas comprendre Charles !!
Pour ce qui est de l'anglais je ne parviens plus a tomber dessus, si des fois tu peux me guider ?