How can I avoid displaying "0" in my text box when cancel is pressed using UIGETDIR

Hi,
The dialog box UIGETDIR returns either the selected folder name as a string if OK is pressed or the number 0 if Cancel is pressed. In my application I have an edit box with a callback function that calls UIGETDIR and then displays the selected folder string, something like this:
editboxhandle.callbackfcn = @set(editboxhandle,'String',uigetdir);
However, when Cancel is pressed, "0" is displayed in my edit box but while I would like the string to be empty in such case. I'm am restricted to a singel expression callback like the one above. How can I solve this?

Answers (1)

k=uigetdir;
if k==0;
k=[];
end

3 Comments

OK, but as I mentioned, I need to be able to do this in a single expression inside the (anonymous type) callback function. Your solution has more than one epression. Nevertheless, I seem to have cracked it myself by using the char command, like this:
editboxhandle.callbackfcn = @char(set(editboxhandle,'String',uigetdir));
When the number 0 is returned by UIGETDIR, char(0) becomes empty.
Why do you need to do it in a single line?
k=uigetdir;
if k==0;
k=[];
end
editboxhandle.callbackfcn = @char(set(editboxhandle,'String',k))

Sign in to comment.

Categories

Products

Asked:

on 3 Aug 2014

Commented:

on 4 Aug 2014

Community Treasure Hunt

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

Start Hunting!