MATLAB: Findobj cannot find a TexBox (annotation) object

annotation;findobjtextbox;

While HandleVisibility property of a TextBox object is 'on' by default,
fig = figure
txb = annotation('textbox',[0.5 0.5 0.5 0.5],'String','bar hoo')
class(txb)
ans =
'matlab.graphics.shape.TextBox'
txb.Type %
ans = 'textboxshape'
txb.HandleVisibility
ans = 'on'
findobj cannot find this txb.
findobj(fig,'Type','textboxshape')
ans =
0×0 empty GraphicsPlaceholder array.
Why is this and how can I find this txb?

Best Answer

Try using the object handle (txb) directly.
plot(1:10)
str = 'Straight Line Plot from 1 to 10';
txb = annotation('textbox',[.2 .5 .3 .3],'String',str,'FitBoxToText','on');
% Use object handle
findobj(txb)
ans =
TextBox (Straight Line Plot from 1 to 10) with properties: String: 'Straight Line Plot from 1 to 10' FontName: 'Helvetica' FontSize: 10 FontWeight: 'normal' Color: [0 0 0] BackgroundColor: 'none' EdgeColor: [0 0 0] LineStyle: '-' LineWidth: 0.5000 Position: [0.2000 0.5000 0.3000 0.3000] Units: 'normalized' Show all properties
If you want to instead find the annotation without using the object handle, use findall instead.
findall(gcf,'Type','textboxshape')
ans =
TextBox (Straight Line Plot from 1 to 10) with properties: String: 'Straight Line Plot from 1 to 10' FontName: 'Helvetica' FontSize: 10 FontWeight: 'normal' Color: [0 0 0] BackgroundColor: 'none' EdgeColor: [0 0 0] LineStyle: '-' LineWidth: 0.5000 Position: [0.2000 0.5000 0.3000 0.3000] Units: 'normalized' Show all properties