Gibt es in MATLAB 2008a eine Möglichkeit, einer Klassenmethode zu ermöglichen, als eine uicontrol-Callback-Funktion zu fungieren, ohne die Methode veröffentlichen zu müssen? Konzeptionell sollte die Methode nicht öffentlich sein, da sie niemals von einem Benutzer der Klasse aufgerufen werden sollte. Es sollte nur aufgerufen werden, wenn ein Benutzeroberflächenereignis einen Rückruf auslöst. Wenn ich jedoch den Zugriff der Methode auf privat oder geschützt festlege, funktioniert der Rückruf nicht. Meine Klasse ist von hgsetget abgeleitet und wird mit der 2008a-Klassedef-Syntax definiert.Kann eine Klassenmethode in MATLAB als ein uicontrol-Callback fungieren, ohne öffentlich zu sein?
Die uicontrol Code sieht ungefähr so aus:
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
Der Callback-Code wie folgt aussieht:
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