matlab app designer–密码框星号隐藏输入
前言
网上容易搜到的部分相关教程存在一些弊端:新手不好看懂,而且应用有瑕疵。这里提了一个简单的思路来完成该功能(把输入保存到全局变量中,检测全局变量的位数,然后把相同位数的“*”显示到密码框)。
具体步骤
- 建立文本框,并做调整
- 设置全局变量,并更改初始命名
- 对文本框设置Changing回调(将输入的字符转换为‘*’,同时把密码保存下来)
在设计视图,右击文本框,点击Changing回调
代码如下:
changingValue = event.Value;
% 保存密码
if size(changingValue,2)>1 % 输入字符多于1
if size(changingValue,2)-size(app.password,2) == 1 % 手动输入
app.password = [app.password,changingValue(:,end)];
elseif size(changingValue,2)-size(app.password,2) > 1 % 粘贴输入
app.password = changingValue;
else % 如果删除字符
app.password = app.password(1,1:size(changingValue,2));
end
elseif size(changingValue,2) == 0 % 输入的字符为0个
app.password = [];
elseif size(changingValue,2) == 1 % 输入的字符为1个
app.password = [app.password,changingValue(:,end)];
end
% 密码星号表示
if size(changingValue,2)>1
s = '*';
for i = 2:size(changingValue,2)
s = [s,'*'];
end
app.Password.Value = s;
elseif size(changingValue,2)==1
app.Password.Value = '*';
end
- 完成,运行
密码在其它环节可以直接调用,形式为app.password