1
View [
     f1:  field focus
     f2:  field
]

运行此代码时,光标获得焦点f1 但我想按回车键,焦点将在f2. 我怎样才能做到这一点?

4

1 回答 1

1

on-enter处理程序内部,您需要更改selected窗口面的面(在这种情况下只是父面)以指向您要关注的面。所以你的代码变成:

view [ f1: field focus on-enter [face/parent/selected: f2] f2: field ]

如果你需要经常改变焦点,你可以定义一个方便的快捷函数:

set-focus: function [face [object!]][
    p: face/parent
    while [p/type <> 'window][p: p/parent]
    p/selected: face
]

view [ f1: field focus on-enter [set-focus f2] f2: field ]

Red/View 将在未来的版本中提供内置set-focus函数,因此您不必在自己的代码中定义它。

于 2017-04-05T12:22:24.513 回答