我在 Matlab 用户界面中插入了一个编辑框,我想限制用户可以输入的字符数。编辑框上没有明显的属性(例如“最大字符数”)。我尝试使用回调函数,验证编辑框上的当前字符串大小是否大于我设置的限制并截断第一个字符,但是回调仅在我单击编辑框外部然后再次进入时才起作用。
你知道如何做到这一点吗?
提前致谢。
已编辑
根据 Amro 的建议,我尝试在编辑框的 KeyPressFcn 回调中放置一个验证码。我输入了以下代码:
function prefix_edit_KeyPressFcn(hObject, eventdata, handles)
text = get(hObject, 'String');
if length(text) > 15
set(hObject, 'String', text(1:15));
end
问题是编辑框字符串仅在我输入内容时更改,按 Enter 然后尝试再次输入内容。似乎 KeyPressFcn 仅在按 Enter 后才被调用(如 Amro 建议的论坛帖子中所述)。
对于如此简单的任务,论坛中提出的解决方案似乎太复杂了。当然必须有一个更优雅的方式......