Nativescript Angular 可以在文本更改事件发生之前拦截它吗?
Can Nativescript Angular intercept text change event before it happen?
我 TextField
使用 Angular nativescript。
<TextField (textChange)="onTextChange($event)" ></TextField>
我只想允许将“a
”字符插入该 TextField。
所有其他字符("b"、"c"、....)都应该被阻止——意思是——被阻止插入。
我已经知道我可以使用 (textChange)
事件然后删除字符 - 但这是一个 太晚的事件 。
问题:
假设我有一个文本字段,我如何跨平台防止输入某些字符?
对于Android,您可以通过显式设置android.widget.Edittext
的setKeyListener
的允许实例(这是[=13= 后面的本机Android 控件)来实现] 在 NativeScript 中)
举个例子
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),但是,该解决方案仍会提示数字键盘。
我 TextField
使用 Angular nativescript。
<TextField (textChange)="onTextChange($event)" ></TextField>
我只想允许将“a
”字符插入该 TextField。
所有其他字符("b"、"c"、....)都应该被阻止——意思是——被阻止插入。
我已经知道我可以使用 (textChange)
事件然后删除字符 - 但这是一个 太晚的事件 。
问题:
假设我有一个文本字段,我如何跨平台防止输入某些字符?
对于Android,您可以通过显式设置android.widget.Edittext
的setKeyListener
的允许实例(这是[=13= 后面的本机Android 控件)来实现] 在 NativeScript 中)
举个例子
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),但是,该解决方案仍会提示数字键盘。