在TextField

时间:2019-05-02 13:49:02

标签: nativescript

如何将TextField中的输入仅限制为数字值?通常建议的解决方案是将keyboardType属性设置为'number',但是在iOS上不起作用。我仍然可以在TextField中输入任何字符。

2 个答案:

答案 0 :(得分:0)

对于iOS来说,它可能是有用的:https://github.com/EddyVerbruggen/nativescript-numeric-keyboard-它是一个将键盘更改为严格数字键盘的插件,并且您还需要调整其一些功能。

答案 1 :(得分:0)

最简单的方法是监听textChange事件并覆盖文本中的所有非数字字符,例如

function onTextChange(args: PropertyChangeData) {
    let value: any = parseFloat(args.value);
    if (isNaN(value)) {
        value = '';
    } else {
        value = value.toString();
    }
    if (value != args.value) {
        const object = <any>args.object;
        object.text = value;
        if (object.android) {
            object.android.setSelection(value.length);
        }
    }
}

Playground Sample