• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Debug on open handler

Kernelpanik

Maren Nissen
Registriert
05.03.04
Beiträge
2.303
Hallo,
ich habe immer wieder Probleme mit den "on open" handler. Anders als beim "on run" handler kann ich Events, Antwort und Ergebnis nicht einsehen. Gibt es da eine Möglichkeit? Bis jetzt habe ich in jedem "on open" handler nach fast jeder Zeile ein "display dialog result" eingebaut aber in einigen Fällen funktioniert das nicht.
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Das einfachste ist es wahrscheinlich on open auszukommentieren und stattdessen choose file zu verwenden. Meistens macht es bei Droplets aber auch Sinn folgendes Konstrukt zu verwenden (oder etwas ähnliches):

Code:
on open theFiles
   main(theFiles)
end open

on run
    set theFiles to choose file with multiple selections allowed
    main(theFiles)
end run

on main(theFiles)
    -- Programmcode:
    log theFiles
end main
 

Kernelpanik

Maren Nissen
Registriert
05.03.04
Beiträge
2.303
Ich habe bemerkt das sich "on open var" und "set var to choose file" nicht gleich verhalten, obwohl das Ergebnis bei beiden ein oder mehrere alias sind. Beim "on open" handler habe ich Situationen in denen das Droplet freezt. Wenn man z.B. verschiedene Dateitypen gleichzeitig versucht zu öffnen.
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Du kannst den open-Handler auch im Skript im run-Handler aufrufen mit "open theFiles". Wenn es aber einen Bug mit dem open-Handler gibt, wird dir das wahrscheinlich nicht weiterhelfen.

Mir ist es z.B. ab und zu aufgefallen, dass beim open-Handler nicht alle Dateien gleichzeitig geöffnet werden, sondern das Programm mehrfach aufgerufen wird.

Es gibt auch Debugger für AppleScript, wie z.B. den AppleScript Debugger, das benutze ich aber schon wegen des Preises nicht.