MATLAB 2008a で、クラス メソッドを公開せずに uicontrol コールバック関数として機能させる方法はありますか? 概念的には、メソッドはクラスのユーザーによって呼び出されるべきではないため、パブリックにするべきではありません。コールバックをトリガーする UI イベントの結果としてのみ呼び出す必要があります。ただし、メソッドのアクセスを private または protected に設定すると、コールバックが機能しません。私のクラスは 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