Ich verwende TextInput für ein Projekt und wollte jede Art von Textauswahl oder Aktionen wie (Ausschneiden/Kopieren/Einfügen/Teilen) deaktivieren, wie im Screenshot unten gezeigt.
Ich kann in der offiziellen React-Native-Dokumentation nichts finden
Ich verwende TextInput für ein Projekt und wollte jede Art von Textauswahl oder Aktionen wie (Ausschneiden/Kopieren/Einfügen/Teilen) deaktivieren, wie im Screenshot unten gezeigt.
Ich kann in der offiziellen React-Native-Dokumentation nichts finden
Sie sollten zwei Attribute hinzufügen
selectTextOnFocus
Und editable
Zum Beispiel:
<TextInput editable={false} selectTextOnFocus={false} />
editable false – ich kann die Texteingabe jetzt nicht einmal bearbeiten – ich benötige diese, wenn ich diese Texteingabe bearbeiten, aber nicht kopieren/ausschneiden/einfügen kann
– firebolt_ash
20. März 2017 um 6:41
Wie kann ich TextInput verwenden, wenn ich „editable false“ gebe? Ich möchte, dass die Kopier-/Einfügeoption deaktiviert wird, ohne dass editable={false} angegeben werden muss.
– saiRam89
21. Juli 2017 um 9:29
Geben Sie Ihrer Texteingabe einfach das Attribut editable={false}
Balasubramanisch
contextMenuHidden besteht darin, den Benutzer am Einfügen von Text in bestimmte Felder zu hindern und das Kontextmenü auszublenden.
Aktualisieren:
Dies wurde noch nicht in eine Veröffentlichung aufgenommen. Sie können jederzeit sehen, in welcher Version sich ein Commit befindet, indem Sie auf klicken Verknüpfung und schauen Sie sich die Tags an. Daher würde ich nicht erwarten, dass es vor 0.55 eine stabile Version gibt.
<TextInput contextMenuHidden={true} />
Überprüfen Sie das Commit hier: Option zum Ausblenden des Kontextmenüs für TextInput hinzufügen
Ich verwende React-Native v0.54.0 und konnte es damit nicht zum Laufen bringen.
– Mateo Guzmán
23. März 2018 um 16:32 Uhr
@MateoGuzmán hat die Antwort aktualisiert.
– Balasubramanian
24. März 2018 um 7:04
Sieht so aus, als ob es in 55.4 installiert wurde, aber es funktioniert nicht für Android. Kann das noch jemand auf beiden Plattformen zum Laufen bringen?
– Rübenrüben
1. Juni 2018 um 20:29
Diese Methode funktioniert nicht auf Android. Haben Sie eine Lösung gefunden, um die Option „Kopieren/Einfügen“ in Android zu verhindern?
– M. Kalidass
7. Januar 2022 um 6:09
Scheinen
Satz Zeigerereignisse zu keiner auf Eltern View
von TextInput
Betrachten Sie zum Deaktivieren von Berührungsereignissen das folgende Beispiel:
<View pointerEvents="none">
<TextInput ... />
</View>
linhadiretalipe
Sie können eine Ansicht verwenden und „removeClippedSubviews={true}“ verwenden (funktioniert mit Android) und contextMenuHidden={true} verwenden (funktioniert mit IOS).
<View removeClippedSubviews={true}>
<TextInput contextMenuHidden={true} />
</View>
Referenz aus der folgenden Ausgabe
https://github.com/facebook/react-native/issues/33697
const App = () => {
const [selection, setSelection] = useState(null);
const [text, setText] = useState('');
return (
<TextInput
selection={selection}
onSelectionChange={(e) => setSelection(e.nativeEvent.selection)}
value={text}
onChangeText={(text) => setText(text)}
style={{ alignSelf: 'center', width: 200, marginTop: 50, backgroundColor: 'grey' }}
/>
);
};
Die folgende Lösung funktioniert für mich, um das Kopieren/Einfügen zu vermeiden. Ich lösche die Tastatur beim onTouchEnd-Ereignis
const [text1, setText1] = useState('')
const clearClipboard = () =>{
Clipboard.setString('')
}
const onChangeText = (text) =>{
//For android 12+ clipboard autofill option, dont allow text change more than one char..which means user is typing.
if(text1.length+1 >= text.length){
setText1(text)
}
}
<TextInput onChangeText={onChangeText} value={text1} contextMenuHidden={true} onTouchEnd={clearClipboard}></TextInput>
schreibgeschütztes Attribut verwenden?
– mehulmpt
19. März 2017 um 7:10 Uhr
Verwenden Sie caretHidden={true}, wenn Sie alle Vorgänge wie Ausschneiden, Einfügen, Kopieren deaktivieren möchten. Dadurch wird auch Ihr Cursor ausgeblendet.
– Anil Chahal
22. Januar 2018 um 7:42 Uhr