我使用Angular nativescript TextField
。
<TextField (textChange)="onTextChange($event)" ></TextField>
我想只允许&#34; a
&#34;要插入到TextField中的字符
应该防止所有其他字符(&#34; b&#34;,&#34; c&#34;,....) - 意思是 - 阻止插入。
我已经知道我可以使用(textChange)
事件然后删除字符 - 但那是太晚的事件。
问题:
假设我有一个文本字段,我如何跨平台阻止输入某些字符?
答案 0 :(得分:2)
对于Android,您可以通过明确设置setKeyListener
android.widget.Edittext
的允许实例(这是NativeScript中TextField
后面的原生Android控件)来实现此目的
例如
export function onTfLoaded(args) {
let tf = <TextField>args.object;
let nativeTF;
if (isAndroid) {
let nativeTF = <android.widget.EditText>tf.nativeView; // on Android is android.widget.EditText
nativeTF.setKeyListener(android.text.method.DigitsKeyListener.getInstance("zxc"));
} else {
let nativeTF = <UITextField>tf.nativeView;// for iOS is UITextField
}
}
以上内容将允许用户仅输入ZXC(工作方式相同as setting digits),但解决方案仍会提示数字键盘。