如何在LiveCode字段中屏蔽用户输入(例如密码)?

时间:2014-03-07 10:31:24

标签: livecode

我希望在LiveCode中创建一个隐藏用户输入的字段(例如使用项目符号或星号符号)

我知道您可以通过弹出对话框询问用户 -

ask password "enter your password"

有没有办法直接进入LiveCode字段?

3 个答案:

答案 0 :(得分:4)

我最喜欢的方法是使用明文填充字段的自定义属性,在字段本身中填充带星号的char的char。作为一个简单的测试,创建一个字段,将其放入脚本中

on keydown var
   set  the hiddentext of me to the hiddentext of me & var
   put "*" after me
end keydown

在按钮中,您可以:

on mouseUp
answer the hiddenText of field "yourField"
end mouseUp

现在这不处理删除键,但这很容易修复,我希望你明白这个想法。

答案 1 :(得分:4)

当你说“”问密码“”允许你创建一个允许用户输入密码的对话框时,你是正确的,而密码又被星号掩盖了。

上面的Craigs是解决这个问题的好方法,但也可以通过以下方法 -

如果您希望对输入字段应用相同的屏蔽,您应该可以通过首先将图像导入到用于屏蔽字段中字符的实时代码(例如项目符号)来完成此操作。然后,在字段的脚本中,您可以放置​​类似 -

的内容
on textChanged
   repeat with x = 1 to the number of chars of me
   set the imageSource of char x of me to 12643
   end repeat
end textChanged

其中imageSource是导入图像的ID

这里发生的是每次字段内容发生变化时都会调用textChange消息。然后我们循环遍历字段的字符并将每个字符的imageSource设置为导入的蒙版图像。“

答案 2 :(得分:2)

就这样。 Neil的方法具有能够直接访问字段文本的优点,因为它基本上是完整的,只是变成了“覆盖”字符。换句话说,你仍然可以简单地说:

answer field "yourField"

delete word 2 of fld "yourField"

而不是我稍远一些:

answer the hiddentext of fld "yourField"

并且,如上所述修改文本需要几行代码。

注意 一旦你有一个漂亮的子弹形图像,imageSource方法就更好了。更容易管理...