Очистка поля редактирования при щелчке мышью в MATLAB GUI - PullRequest
3 голосов
/ 05 января 2012

Я хочу, чтобы в графическом интерфейсе MATLAB было поле "edit" с надписью "TYPE SEARCH HERE".Когда пользователь щелкает внутри поля, я хочу, чтобы «ТИП ПОИСКА ЗДЕСЬ» исчез и дал пользователю пустое поле редактирования, чтобы начать вводить ...

Есть идеи?

Ответы [ 3 ]

4 голосов
/ 05 января 2012

По крайней мере в моей системе, когда я использую следующий код для настройки окна / окна ввода пользователя

prompt    = 'Enter search terms:';
dlg_title = 'My input box';
num_lines = 1;
defAns    = {'TYPE_SERACH_HERE'};

answer = inputdlg(prompt, dlg_title, num_lines, defAns);

текст по умолчанию TYPE_SEARCH_HERE подсвечивается, поэтому я могу просто начать набирать текст для заменыэто с тем, что я хочу.

Редактировать В качестве альтернативы, если у вас есть существующее поле для редактирования uicontrol, вы можете сделать что-то вроде следующего:

1 голос
/ 30 мая 2013

Крис, ты должен щелкнуть на границе uicontrol, чтобы сделать ButtonDownFcn.Этого не произойдет, если вы нажмете внутри в окне редактирования

0 голосов
/ 09 августа 2013

Хорошо, у меня есть решение проблемы, и оно работает безупречно !!

Однако я очень расстроен, потому что понятия не имею, ПОЧЕМУ это работает ...

  1. Создайте текстовое поле для редактирования в GUIDE и щелкните правой кнопкой мыши по нему, чтобы открыть инспектор свойств.
  2. добавить текст "TYPE TEXT HERE" в свойство "string"
  3. Найдите свойство с именем «Включить» и переключите его на «неактивное»
  4. Создать buttonDownFnc (также можно сделать в инспекторе свойств)
  5. Используйте следующий код:

    функция myEditBoxTagGoesHere_ButtonDownFcn (hObject, eventdata, дескрипторы)

    % Переключить состояние «Включить» в состояние ВКЛ.

    set (hObject, 'Enable', 'On');

    % Создать элемент управления пользовательского интерфейса

    UIControl (handles.myEditBoxTagGoesHere);

Если бы кто-то мог объяснить, почему uicontrol выделяет текст при щелчке левой кнопкой мыши, это было бы здорово!

...