app designer ui table drop down selection

Hi,
How can I make cells inside App Designer UITable selectable via drop down menu only but not editable as string?
i.e. I need to limit the possible values of these cells using drop down selection to a list of categorical array, and not letting user type whatever they want.
Thanks

 Akzeptierte Antwort

Rachel Surridge
Rachel Surridge am 17 Jul. 2020
Bearbeitet: Rachel Surridge am 17 Jul. 2020

0 Stimmen

Hi Jimmy,
You can achieve this by making your categorical array protected. Example:
B = categorical(A, 'Protected', true)
This will protect your drop-down menu from edits.
Full implementation of an example:
fig = uifigure;
myData = {'Andrew' 31 'Male'; ...
'Bob' 41 'Male'; ...
'Anne' 20 'Female';};
myData = cell2table(myData, 'VariableNames', {'Name', 'Age','Gender'});
myData.Group = categorical({'Group 1'; 'Group 2'; 'Group 3'}, 'Protected', true);
uit = uitable('Parent', fig, ...
'Position', [100 150 380 100], ...
'ColumnEditable',true, ...
'Data',myData);

3 Kommentare

Jimmy Zhan
Jimmy Zhan am 20 Jul. 2020
Hi Rachel,
Thanks! It worked. This is exactly what I was looking for.
Best regards
It does not work for me. It works only if the groups are as many as the rows of the table. For example if I have
myData.Group = categorical({'Group 1'; 'Group 2'; 'Group 3';'Group 4'}, 'Protected', true);
I get this error
Error using myscript (line 6)
To assign to or create a variable in a table, the number of rows must match the height of the table.
Ideas?
Andrea Carignano
Andrea Carignano am 19 Mär. 2021
Bearbeitet: Andrea Carignano am 19 Mär. 2021
The correct way to do this is:
myData.Group = categorical({'Group 1'},{'Group 1'; 'Group 2'; 'Group 3'}, 'Protected', true);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Develop Apps Using App Designer finden Sie in Hilfe-Center und File Exchange

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by