【问题标题】:ScriptUI - How to get EditText old text with changing event listener?ScriptUI - 如何通过更改事件侦听器获取 EditText 旧文本?
【发布时间】:2020-12-14 00:42:27
【问题描述】:

ScriptUI reference 中所述,有两种方法可以在EditText 上实现更改侦听器:

editText.onChanging = function() {
    ...
}

editText.addEventListener('changing', function(event) {
    ...
})

但是,在对EditText.text 进行编辑后会触发该功能,拒绝获取旧文本值的机会作为后备选项是不希望的新值。我正在寻找这样的东西:

editText.onChanging = function(oldValue) {
    var newValue = this.text
    if (!isCorrect(newValue)) {
        this.text = oldValue
    }
}

【问题讨论】:

  • editText 获得焦点时能抓取文本吗? After Effects有一个onActivate回调,不知道是否适用于所有aps:estk.aenhancers.com/user-interface-tools/…
  • 这是一个聪明的解决方法,我想我应该更有创意。将其发布为答案,以便我关闭此帖子。

标签: javascript adobe-illustrator extendscript adobe-scriptui


【解决方案1】:

editText 框有一个onActivate callback,当元素获得焦点时触发。如果您在该点存储editText的当前文本值,如果新值未验证,则可以将其返回到其原始状态。

请注意,此处可能值得考虑 UX — 如果您输入了一个无效值,而该值刚刚恢复,您可能没有意识到它已经这样做了。对于用户来说,这可能会非常令人困惑:看起来我输入了一个值,但没有任何反应。最好抛出错误,例如对话框,或禁用其他控件,例如如果参数不正确,“do the things”按钮变灰。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2012-02-08
    • 2020-11-25
    相关资源
    最近更新 更多