Я вставил поле редактирования в пользовательский интерфейс Matlab, и я хотел бы ограничить количество символов, которые может печатать пользователь. В окне редактирования нет очевидного свойства (например, «максимум символов»). Я пытался использовать функцию обратного вызова, проверяя, был ли текущий размер строки в поле редактирования больше установленного предела, и обрезая первые символы, однако обратный вызов действовал только тогда, когда я щелкнул за пределами поля редактирования, а затем снова внутри.
Ты хоть представляешь, как это сделать?
Заранее спасибо.
EDITED
По предложению 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).
Решение, предложенное на форуме, кажется слишком сложным для такой простой задачи. Конечно, должен быть более элегантный способ ...