View [
f1: field focus
f2: field
]
运行此代码时,光标获得焦点f1
但我想按回车键,焦点将在f2
. 我怎样才能做到这一点?
在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
函数,因此您不必在自己的代码中定义它。