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.EdittextsetKeyListener 的允许实例(这是[=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),但是,该解决方案仍会提示数字键盘。