NativeScript TextField canPerformActionWithSender
NativeScript TextField canPerformActionWithSender
我的应用程序中有一个自定义键盘(由按钮组成),我用它来将数值填充到 TextField
中。按下按钮时,我设置 TextField
的文本,同时清理数据 — 确保只有一位小数,没有输入任何字母,等等
但是,我现在正在尝试检测用户何时试图粘贴到字段中,以便我可以完全阻止它或在允许粘贴之前清理粘贴的文本。
到目前为止我采用的方法是尝试在 NativeScript TextField
.
上实现 canPerformActionWithSender 方法
我尝试了以下方法(我使用的是 NativeScript Vue):
<TextField
ref="amount"
hint="[=10=].00"
@loaded="onTextFieldLoaded"
@unloaded="onTextFieldUnloaded" />
还有...
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;
}
这将禁用 copy/paste/etc。菜单完全。如果您愿意,您可以更具体地检查操作以仅禁用某些功能。
UITextField.prototype.canPerformActionWithSender = function (action, sender) {
if (action == 'paste:') {
return false;
}
return true;
}
我的应用程序中有一个自定义键盘(由按钮组成),我用它来将数值填充到 TextField
中。按下按钮时,我设置 TextField
的文本,同时清理数据 — 确保只有一位小数,没有输入任何字母,等等
但是,我现在正在尝试检测用户何时试图粘贴到字段中,以便我可以完全阻止它或在允许粘贴之前清理粘贴的文本。
到目前为止我采用的方法是尝试在 NativeScript TextField
.
我尝试了以下方法(我使用的是 NativeScript Vue):
<TextField
ref="amount"
hint="[=10=].00"
@loaded="onTextFieldLoaded"
@unloaded="onTextFieldUnloaded" />
还有...
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;
}
这将禁用 copy/paste/etc。菜单完全。如果您愿意,您可以更具体地检查操作以仅禁用某些功能。
UITextField.prototype.canPerformActionWithSender = function (action, sender) {
if (action == 'paste:') {
return false;
}
return true;
}