NativeScript文本字段可以使用Sender执行操作

NativeScript文本字段可以使用Sender执行操作,nativescript,textfield,nativescript-vue,Nativescript,Textfield,Nativescript Vue,我的应用程序中有一个自定义键盘(由按钮制成),我用它将数值填充到文本字段中。当按下一个按钮时,我设置TextField的文本,同时清理数据-确保只有1个小数,没有输入字母,等等 但是,我现在尝试检测用户何时尝试粘贴到字段中,以便我可以完全阻止它,或者在允许粘贴之前对粘贴的文本进行清理 到目前为止,我采取的方法是尝试在NativeScriptTextField上实现该方法 我尝试了以下操作(我正在使用NativeScript Vue): 而且 onTextFieldLoaded(event)

我的应用程序中有一个自定义键盘(由按钮制成),我用它将数值填充到
文本字段中。当按下一个按钮时,我设置
TextField
的文本,同时清理数据-确保只有1个小数,没有输入字母,等等

但是,我现在尝试检测用户何时尝试粘贴到字段中,以便我可以完全阻止它,或者在允许粘贴之前对粘贴的文本进行清理

到目前为止,我采取的方法是尝试在NativeScript
TextField
上实现该方法

我尝试了以下操作(我正在使用NativeScript Vue):


而且

onTextFieldLoaded(event) {
    let textField = event.object
    textField.focus()

    nativeView.canPerformActionWithSender = (action, sender) => {
        // `action` may be 'paste' so I can handle that action here
    }
}

但这不起作用。有没有一种简单的方法可以在不创建自定义组件的情况下实现这一点?

我通过以下方法解决了这个问题:

UITextField.prototype.canPerformActionWithSender = function (action, sender) {
    return false;
}
这将完全禁用复制/粘贴/等菜单。如果愿意,您可以更具体地检查操作以仅禁用某些功能

UITextField.prototype.canPerformActionWithSender = function (action, sender) {
    if (action == 'paste:') { 
       return false;
    }

    return true;
}

我认为您必须扩展
UITextField
以覆盖此方法,并在
createNativeView
类的
TextField
方法中返回相同的实例。