j'ai un savePanel et je souhaite, lorsque le fichier existe déjà, ouvrir
une NSAlert, qui [con|in]firme le choix de l'utilisateur :
dans la méthode pour savePanel :
savePanelDidEnd_returnCode_contextInfo(panel, returnCode, contextInfo)
j'ai :
if FileTest.exists?("#{@file}")
alertSheetOpen("Attention vous allez écrasez le fichier «
#{@file} ».", "Il est préférable de le renommer.", proc { fileChoosen })
else
@open_panel_proc.call
end
@alert.beginSheetModalForWindow_modalDelegate_didEndSelector_contextInfo
(@savePanel, self, 'alertDidEnd:returnCode:contextInfo:', "")
sleep 2
end
et enfin :
def alertDidEnd_returnCode_contextInfo(alert, returnCode, contextInfo)
p "returnCode.to_i = #{returnCode.to_i}"
if returnCode.to_i == 1
sleep 0.5
chooseFile(nil)
else
@done_alert_proc.call
end
end
MAIS PROBLEME, ça ne passe pas par
"alertDidEnd_returnCode_contextInfo(alert, returnCode, contextInfo)"
l'alertSheet se ferme toute seule ???
je n'ai pas le temps de cliquer...
si j'inteverti les boutons "Annuler" et "Enregistrer", même chose...
je ne passe pas par alertDidEnd_returnCode_contextInfo...
donc je met nil pour la fen^tre alors cette "sheet" s'ouvre comme une fenêtre, placée différemment si bien que, amha, le bouton par défaut n'est pas cliqué...
donc veut dire que je devrait par une release des clixks souris AVANT de lancer cette fenêtre d'alerte ???
ou la créer seulement après que j'en ai besoin, mais alors comment la tuer après, pour éviter d'en avoir une tripotée en meme ???
donc je met nil pour la fen^tre alors cette "sheet" s'ouvre comme une
fenêtre, placée différemment si bien que, amha, le bouton par défaut
n'est pas cliqué...
donc veut dire que je devrait par une release des clixks souris AVANT de
lancer cette fenêtre d'alerte ???
ou la créer seulement après que j'en ai besoin, mais alors comment la
tuer après, pour éviter d'en avoir une tripotée en meme ???
donc je met nil pour la fen^tre alors cette "sheet" s'ouvre comme une fenêtre, placée différemment si bien que, amha, le bouton par défaut n'est pas cliqué...
donc veut dire que je devrait par une release des clixks souris AVANT de lancer cette fenêtre d'alerte ???
ou la créer seulement après que j'en ai besoin, mais alors comment la tuer après, pour éviter d'en avoir une tripotée en meme ???