Dans MATLAB 2008a, existe-t-il un moyen de permettre à une méthode de classe d'agir comme une fonction de rappel uicontrol sans avoir à rendre la méthode publique? Conceptuellement, la méthode ne devrait pas être publique car elle ne devrait jamais être appelée par un utilisateur de la classe. Il ne doit être appelé qu'à la suite d'un événement d'interface utilisateur déclenchant un rappel. Toutefois, si je définis l'accès de la méthode à private ou protected, le rappel ne fonctionne pas. Ma classe est dérivée de hgsetget et est définie en utilisant la syntaxe classdef 2008a.Dans MATLAB, une méthode de classe peut-elle agir comme un rappel uicontrol sans être publique?
Le code uicontrol ressemble à:
methods (Access = public)
function this = MyClass(args)
this.someClassProperty = uicontrol(property1, value1, ... , 'Callback', ...
{@(src, event)myCallbackMethod(this, src, event)});
% the rest of the class constructor code
end
end
Le code de rappel ressemble:
methods (Access = private) % This doesn't work because it's private
% It works just fine if I make it public instead, but that's wrong conceptually.
function myCallbackMethod(this, src, event)
% do something
end
end