Iは、MATLABユーザインタフェースの編集ボックスを挿入し、私は、ユーザーが入力できる文字の数を制限したいです。編集ボックスには明示的なプロパティはありません(「最大文字数」など)。私はその後、内部の再編集ボックスの外側をクリックしたときただし、コールバックのみ行動し、最初の文字を編集ボックスに現在の文字列のサイズが、私が設定した制限よりも大きかった場合の検証と切り捨て、コールバック関数を使用しようとしました。Matlabのユーザインターフェイスで編集ボックス内の文字列の長さを制限
は、あなたがこれを行う方法のいずれかのアイデアを持っていますか?
ありがとうございます。アムロによって示唆されるように
編集
は、私が編集ボックスのの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が提案したフォーラムのポストに記載されています)。
フォーラムで提案された解決策は、このような単純なタスクのために、複雑すぎるようです。確かにもっとエレガントな方法が存在しなければならない...