В MATLAB 2008a, есть ли способ позволить методу класса выступать в качестве функции обратного вызова uicontrol, не делая метод общедоступным? Концептуально, метод не должен быть публичным, потому что он никогда не должен вызываться пользователем класса. Он должен вызываться только в результате события пользовательского интерфейса, инициирующего обратный вызов. Однако, если я устанавливаю доступ метода к приватному или защищенному, обратный вызов не работает. Мой класс является производным от hgsetget и определяется с использованием синтаксиса 2008a classdef.
Код uicontrol выглядит примерно так:
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
Код обратного вызова выглядит так:
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