How to determine if enter(return) was pressed ?

49 views (last 30 days)
Hi,
in one part of my code I need to determine if enter(return) was pressed. I am useing simple part of code:
kkey = get(gcf,'CurrentCharacter');
if strcmp(kkey, %comparing parameter)
% my code
end
which works very well for every key imaginable except return key...when I try to examine it step by step I found that if I press for example number 1:
kkey = '1'
but when I press return field is suddenly 1x1char and blank...why is that ? shouldnt kkey variable be '13' like in the ascii that coresponds to return ??
From my point of view it's wierd...How can I than compare it ??
Thanks, Peter

Accepted Answer

Petr
Petr on 7 Nov 2012
Solution was simple and enough elegant for me...
.
function pushbutton1_KeyPressFcn(hObject, eventdata, handles)
key = get(gcf,'CurrentKey');
if(strcmp (key , 'return'))
pushbutton1_Callback(hObject, eventdata, handles)
end
function pushbutton1_Callback(hObject, eventdata, handles)
%code to be executed

More Answers (1)

Sven
Sven on 6 Nov 2012
Edited: Sven on 6 Nov 2012
Hi Peter,
I've found that it's often easier to supply an onKeyPress function like follows:
function testme()
figure('KeyPressFcn', @(src,evnt)onKeyPressRelease(evnt,'press'),...
'KeyReleaseFcn',@(obj,evnt)onKeyPressRelease(evnt,'release')...
);
end
function onKeyPressRelease(evnt, pressRelease)
disp(evnt)
disp(pressRelease)
end
If you test this, you'll see that you can capture "return" in the event.Key property:
Character: '
'
Modifier: {1x0 cell}
Key: 'return'
And you will know whether it was just pressed or released.
Thanks, Sven.

Categories

Find more on Language Fundamentals in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!