我允许用户使用Tab键来浏览表单。
我的表格是这样的...
这就是我所需要的Tab键顺序...
我将图层号(在属性检查器窗口)设置为如下所示...
当我运行这个表格时,用户名被关注。当我按tab键时,它转到密码。当我再次按Tab键时,它又回到了用户名(不是按钮)。
我试着在密码文本框中添加代码来强制聚焦按钮。
on tabKey
focus on button "logIn"
end tabKey
但我得到一个错误...
"焦点:不是一个有效的控件"
我在网上没有找到合适的解决方案。如何实现这一点?
在其他语言中,这样做比较容易。
EDIT: 我找到了这个压缩文件 里面有一个livecode的样本文件 活码论坛 显示了按钮的颜色。这并不是问题的真正解决方案,因为它并没有真正聚焦按钮,而是改变了按钮的颜色,看起来像是在活动。当我按空格键时,按钮是ilite的,它什么也不做。
将按钮的遍历设置为true。这将允许你想要的行为。请注意,Macs默认不支持按钮遍历,但在Windows上可以工作。
"焦点 "对于按钮来说不是一个特别有用的术语。当你聚焦在一个字段上时,你是在 "hiliting "这个字段,并将光标放在它的文本(如果有的话)之后。
但 "聚焦 "在一个按钮上是什么意思呢?你是想让那个按钮 "hilite",还是以其他方式让人们注意到它?如果是这样,当从密码字段中分页时,你会想设置按钮的一些属性,但可能不会关注它。
好的。在一张新的卡片上做两个字段,然后做两个按钮。正如Jacque所提到的,确保每个按钮的traversalOn被设置.在卡片脚本中试试这个。
on tabkey
put the layer of the target into tLayer
put the name of the target into tName
put tname
if tName contains "button" then
set the hilite of the target to "false"
end if
if tLayer = the number of controls then focus on control 1
else
focus on control (tLayer + 1)
if the name of control (tLayer + 1) contains "button" then set the hilite of control (tLayer + 1) to "true"
end if
end tab key
在卡片脚本中试试这样: 当你用标签时,你会看到每个控件的动作。