Main Content

객체 삭제 콜백 정의하기

객체를 삭제할 때 코드를 실행하는 객체 삭제 콜백을 만들 수 있습니다.

예를 들어, Figure 하나를 삭제할 때 모든 Figure를 삭제할 것인지 묻는 대화 상자가 나타나도록 Figure에 대한 객체 삭제 콜백을 만들어 보겠습니다. 다음 코드를 새 함수 파일로 복사하고 이를 현재 폴더나 MATLAB® 검색 경로에 있는 폴더에 figDelete.m으로 저장합니다.

function figDelete(~,~)
yn = questdlg('Delete all figures?',...
    'Figure Menu',...
    'Yes','No','No');
switch yn
    case 'Yes'    
        allfigs = findobj(get(groot,'Children'),'Type','figure' );      
        set(allfigs,'DeleteFcn',[]);
        delete(allfigs)
    case 'No'
        return
end
end

그런 다음, 두 개의 Figure를 생성하고 DeleteFcn 속성에 figDelete 함수를 할당합니다. Figure 중 하나를 삭제하고, 나타나는 대화 상자에서 옵션을 선택합니다.

figure('DeleteFcn',@figDelete)
figure('DeleteFcn',@figDelete)