Mac OS: AppleScript/ AppleScript Studio
Aus Wikibooks
Mit Xcode können unter anderem AppleScript-basierte Applikationen erstellt werden. Wenn AppleScript unter Xcode verwendet wird spricht man vom "AppleScript Studio" (im Gegensatz zum "Scripteditor").
Inhaltsverzeichnis |
[Bearbeiten] Einleitung
Da AppleScript relativ einfach zu erlernen ist (im Vergleich zu C oder C++), können so auch "normale" Menschen ein nettes OSX-Programm erstellen. Zunächst müssen Sie sich jedoch die "Developer Tools" von Apples Server herunterladen und installieren. Diese können kostenlos von der URL http://developer.apple.com/technology/xcode.html bezogen werden. Allerdings muss man sich zuvor einen kostenlosen Account erstellen. Während Sie die Developer Tools herunterladen, können Sie ja z.B. Ihre AppleScript Kenntnisse etwas auffrischen...
Die Vorgehensweise zur Erstellung einer OSX-Applikation mittels AppleScript und Xcode wird hier an einem Beispiel erklärt. Wir programmieren einen kleinen Fragebogen, der die Zufriedenheit mit Wikibooks erfragt und die Daten in eine kleine sqlite3-Datenbank speichert. Sicherlich, dieses Programm hat keinen großen Nutzen, da die potentiellen Probanden den Bogen an Ihrem Mac ausfüllen müssten. Trotzdem stellt ein solcher Fragebogen gewisse Herausforderungen an die Programmierung in AppleScript Studio, so dass es sich bestimmt eignet, ein Verständnis für die prinzipiellen Vorgehensweisen zu schaffen.
Wenn Sie die Developer Tools installiert haben, öffnen Sie das Programm Xcode. Dieses liegt im Hauptverzeichnis unter Developer/Applications.
[Bearbeiten] Ein neues Projekt anlegen
| Starten Sie Xcode und wählen Sie aus dem Menü "File => New Project."
Es öffnet sich ein neues Fenster. Wählen Sie unter "Application" den Eintrag "AppleScript Application" aus und klicken Sie auf "next". Hierdurch bestimmen Sie, dass das neue Projekt hauptsächlich in Applescript geschrieben wird. Die Projekteinträge werden dann entsprechend automatisch generiert. Sie werden jetzt noch nach dem Dateinamen Ihres neuen Projektes und dem Speicherort gefragt. Wir nennen unser Projekt "Wikibooks_Demo" und erstellen dafür im "Dokumente"-Ordner einen eigenen Unterordner, der z.B. auch "Wikibooks-Demo heißt. |
|
| Es öffnet sich nun das Xcode-Projektfenster. Auf der linken Seite sehen Sie eine Übersicht von verschiedenen Ordnern und Dateien. Zunächst sind hier nur 2 Ordner von Interesse: "Scripts" und "Resources". Klicken Sie zunächst auf den Ordner "Scripts". Sie sehen, dass Xcode bereits eine Datei angelegt hat. Diese trägt den Namen Ihres Projektes mit der Dateiendung "applescript". In Wikibooks_Demo.applescript werden wir einen Großteil unserer AppleScript-Befehle schreiben. Durch Doppelklick auf diese Datei öffnet sich der Editor. Noch ist es allerdings nicht an der Zeit um Code einzufügen - das kommt später. |
Wechseln Sie nun in den "Resources"-Ordner. Auch hier ist bereits ein paar Datei enthalten:
- "AppleScriptKit.sdef": Diese Datei ist als Nachschlagewerk für AppleScript Befehle und Klassen gedacht. Dies kann hilfreich sein, wenn Sie "mal kurz" nachschlagen wollen, wie eine bestimmte Aktion gescriptet werden muss.
|
|
|
[Bearbeiten] Das Interface aufbauen
Fast jedes Programm besteht aus einem Graphischen User Interface (GUI), welches die Benutzung über eine grafische Oberfläche in Form von Programmfenstern ermöglicht. AppleScript Studio - also die Verwendung von AppleScript in Kombination mit den Developer Tools - ist genau für diesen Zweck entwickelt: Es ermöglicht Ihnen in sehr einfacher Weise Programmfenster zu erstellen, deren Funktionen Sie in AppleScript programmieren können. Hierzu steht der so genannte "Interface Builder" (IB) zur Verfügung. Mit ihm können Sie Ihre Programmfenster zusammenstellen, ohne sich um lästigen Standardcode zur Erzeugung der Grafiken (Fenster, Buttons, Schieberegler usw.) kümmern zu müssen. Also, frisch ans Werk. Der Interface Builder startet automatisch, wenn Sie im Xcode-Fenster auf die Datei MainMenu.xib doppelklicken. MainMenu.xib finden Sie, wenn Sie in der linken Spalte in den Ordner "Resources" schauen.
|
Es öffnet sich nun das Hauptfenster des IB, welches 5 Objekte enthält. Für uns sind zunächst die letzten beiden Objekte interessant: "Window" und "MainMenu". Führen Sie einen Doppelklick auf das Objekt "Window" aus. Et voila, das erste Programmfenster öffnet sich. Noch ist es leer, und es trägt auch noch den nichts sagenden Titel "Window", aber das wird sich bald ändern. Hierzu benötigen wir die Hilfe eines der elementaresten Werkzeuge des IB: des so genannten "Inspectors". |
|
|
Der Inspector ist ein Werkzeugfenster, in welchem die grundlegenden Einstellungen für die Programmfenster und deren Inhalte festgelegt werden. Sie öffnen den Inspector durch die Tastenkombination ShiftApfeli. Der Inspector hat mehrere Ansichten, die über die Reiter in der Kopfzeile angewählt werden können. Für unser Projekt sind der erste Reiter (Attribute) und der letzte Reiter (AppleScript) von Bedeutung. Wenn der Inspector öffnet, ist der erste Reiter (Attribute) geöffnet. Sie erreichen diesen Reiter auch per Tastenkombination Apfel1. Bleiben wir zunächst auf diesem Reiter. Sie sehen zu oberste ein Eingabefeld mit dem Namen "Title". Im Eingabefeld selbst steht noch "Window". Falls Sie diese Felder nicht sehen können, liegt das daran, dass Sie Ihr gerade erschaffenes Programmfenster "Window" noch nicht richtig ausgewählt haben. Klicken Sie hierzu auf die Kopfleiste Ihres Fensters (das ist die Leiste mit den rot-gelb-grünen Knöpfen auf der linken Seite). Wichtig ist, dass Sie wirklich auf die Kopfleiste - nicht aber in das Fenster klicken. Jetzt sollten Sie im Inspector das eben erwähnte Feld "Title" und nebenstehenden Eintrag "Window" sehen. Ändern Sie in dem Eingabefeld "Window" in "Wikibooks Befragung" um. Sie werden sehen, dass sich nun der Titel auch in Ihrem Programmfenster entsprechend geändert hat. Die nächste Zeile "Frame name" lassen wir leer stehen. Viel interessanter sind die darunter stehenden Häkchen.
Bevor wir weitermachen, und zum Beispiel Buttons und Textfelder unserem Programmfenster hinzufügen, wechseln wir kurz in die "Applescript"-Ansicht des Inspectors. |
|
Da wir unser Programm in AppleScript schreiben möchten, ist die AppleScript-Ansicht des Inspectors sehr wichtig. Man erreicht diese Ansicht entweder, indem man auf das Symbol ganz rechts in der Kopfleiste des Inspectors klickt, oder durch die Tastenkombination Apfel7. Wenn Sie in der AppleScript-Ansicht sind, gehen Sie zunächst wieder sicher, dass Sie Ihr Programmfenster richtig ausgewählt haben. Klicken Sie also in die Kopfleiste Ihres Programmfensters, und schauen Sie, ob sich im Inspector irgendwas ändert. Ist dies nicht der Fall, hatten Sie Ihr Programmfenster bereits richtig ausgewählt. Sie sehen im Inspector nun die Eingabebereiche "Name, Index, Scope, Script". Gehen Sie zuerst in den Bereich "Script" und wählen Sie aus dem Dropdown-Menu "Wikibooks_Demo.applescript" aus. Hiermit sagen Sie dem Inspector, dass die Funktionen für das Objekt "Programmfenster" in der Datei "Wikibooks_Demo.applescript" programmiert werden. Erst wenn Sie diesen Eintrag gesetzt haben, können Sie die anderen Felder ausfüllen (denn die Felder werden bei der Auswahl der Scriptdatei gelöscht!). Ganz wichtig ist das oberste Feld "Name". Hier tragen Sie ein, unter welchem Namen das Objekt (in diesem Fall Ihr Programmfenster) im AppleScript-Code angesprochen wird. Da es sich bei dem Programmfenster um das Hauptfenster unseres Programms handelt, nennen wir es auch so: hauptfenster
Jetzt kann das Fenster in AppleScript eindeutig angesprochen werden. An dieser Stelle sei nun auf eine wichtige Verständnissache von AppleScript Studio hingewiesen:
Passend hierzu finden Sie in der AppleScript-Ansicht des Inspectors den Bereich "Event Handlers". Hier können Sie angeben, welche "Events" in Ihrem Programm geschehen sollen. Wenn Sie möchten, dass direkt zum Programmstart ein Code ausgeführt wird, müssen Sie dies auch so angeben. Klicken Sie hierzu auf das kleine Dreieck vor "Window" und setzen Sie aus der aufklappenden Liste einen Haken bei "opened". Hiermit teilen Sie dem IB mit, dass beim Öffnen des Programmfensters (also beim Start des Programms) ein gewisser Code ausgeführt werden soll. In vielen Fällen ist dies gar nicht notwendig, da Funktionen normalerweise erst dann ausgeführt werden sollen, wenn der User z.B. auf einen Button drückt. Wir möchten aber in unserem Beispiel hier trotzdem schon nach dem Öffnen des Programms einen Codeschnipsel ausführen lassen. |
Doppelklicken sie nun auf "opened" oder gehen Sie zurück in Xcode und klicken Sie dort im Script-Ordner doppelt auf die Datei "Wikibooks_Demo.applescript". Es öffnet sich nun ein Editor, und Sie sehen die folgenden Zeilen:
on opened theObject (*Add your script here.*) end opened
Dieser Eintrag wurde durch die Wahl des Event Handlers "opened" automatisch in Ihrer Scriptdatei erzeugt. Die Variable theObject wird von AppleScript Studio automatisch erzeugt und enthält die Events. Die erste Zeile besagt (auf deutsch übersetzt): "Wenn das Objekt (in diesem Fall unser Programmfenster) geöffnet wird, dann tue folgendes:". Sie können nun der Aufforderung aus der zweiten Zeile ((*Add your script here.*)) nachkommen, und ihren Code hier eingeben. Die dritte Zeile besagt, dass der Code zu Ende ist. Zusammengefasst bedeutet das, dass der Code zwischen on opened und end opened beim Programmstart ausgeführt wird.
Merken Sie sich, dass... ...Sie in der Attribut-Ansicht des Inspectors das Aussehen Ihres Programms regeln. Diese Einstellungen bekommen die User Ihres Programms zu sehen. ...Sie in der AppleScript-Ansicht des Inspectors unbedingt auf eine Scriptdatei verweisen müssen, über welche Sie das Objekt ansprechen werden, und dass Sie hierzu unbedingt einen eindeutigen Namen für das Objekt vergeben müssen ...Sie Objekte ausschließlich über den Namen, den Sie in der AppleScript-Ansicht des Inspectors vergeben haben im Code ansprechen können, nicht aber über den Namen (Title) aus der Attribute-Ansicht. ...Sie in der Scriptdatei keine on (...) theObject-Bereiche löschen, da dies zu Fehlermeldungen und Abbrüchen führt. Entfernen Sie, falls Sie die Events nicht (mehr) benötigen die Häkchen im Event Handlers-Bereich der AppleScript- Ansicht im Inspector.
Diese vier Regeln sollten Sie sich unbedingt merken, denn sie gelten für alle Objekte (wie z.B. Buttons, Schieberegler, Fenster, Textfelder usw.), die Sie für Ihre Programm erstellen werden. Ein häufiger Anfängerfehler besteht darin, dass entweder kein Name oder keine Scriptdatei für ein Objekt angegeben wird, oder aber dass Objekte über die Namen aus der Attribute-Ansicht im Code referenziert werden. Des Weiteren führt das Löschen von automatisch generierten on (...) theObject-Bereichen in der Scriptdatei zu Fehlermeldungen während des Programmablaufs, über deren Ursache man sich im Falle eines Falles nur nach langem Suchen und Herumprobieren klar wird.
[Bearbeiten] Code für den Programmstart
Da wir das Event "opened" für unser Programmfenster ausgewählt haben, wollen wir nun auch den Codeschnipsel programmieren, der beim Programmstart ausgeführt werden soll. Wir erstellen ja hier einen Fragebogen, dessen Daten wir in einer sqlite3-Datenbank ablegen möchten (sqlite3 ist standardmäßig auf OSX-Systemen installiert). Daher werden wir beim Programmstart überprüfen, ob unsere Datenbank-Datei bereits existiert oder nicht. Sollte sie nicht existieren, werden wir sie anlegen lassen. Öffnen Sie daher die Datei "Wikibooks_Demo.applescript" und fügen Sie folgenden Code zwischen den on opened theObject-Bereich:
set dbPath to "~/Wikibooks.db" --unsere sqlite3-Datenbank soll im Userordner unter dem Namen "Wikibooks.db" gespeichert werden
--jetzt muss der Pfad noch im AppleScript-Format angegeben werden, damit der FINDER dies verstehen kann.
set pathPart1 to path to home folder as text --Pfad zum Userordner
set dbPathAS to pathPart1 & "Wikibooks.db" --der Dateiname wird dem Pfad angehaengt
tell application "Finder"
if (exists file dbPathAS) then -- der Finder benötigt das AS-Format
-- Die sqlite3-Datenbank-Datei existiert bereits...
-- deshalb machen wir nichts...
else
-- die Datenbank-Datei existiert nicht
-- deshlab erzeugen wir sie nun mit Hilfe der Shell
set head to "sqlite3 " & dbPath & space & quote -- so soll unser Shellbefehl beginnen
set tail to quote -- und so endet er
set tableName to "create table wikibooks" --wir erzeugen eine neue Tabelle "wikibooks" fuer unsere Daten
set tableColumns to " (id, datum, dasAlter, geschlecht, f1,f2,f3,f4); " --diese Spalten soll die Tabelle haben
do shell script head & tableName & tableColumns & tail -- so wird die Datenbank-Datei erzeugt
--jetzt benoetigen wir noch eine Tabelle um den "working-status" abfragen zu koennen
set tableName to "create table working" -- dies ist unsere "working" Tabelle
set tableColumns to " (id, status, nextquestion); " --diese Spalten soll "working" haben
do shell script head & tableName & tableColumns & tail -- so wird die Tabelle erzeugt und gespeichert
--in "working" legen wir auch schon einen Datensatz herein
set data1 to "insert into working values('1','1','1'); " --diese Daten wollen wir speichern
do shell script head & data1 & tail --und das tun wir hier auch
end if
end tell
In der Kopfzeile des Editors sehen Sie ein Symbol, dass einen Hammer zeigt und den Untertitel "Build and Go" trägt. Wenn Sie auf dieses Symbol klicken, wird Ihr Programm kompiliert und ausgeführt. Vorher fragt Xcode noch nach, ob die geöffneten Dateien gespeichert werden sollen. Klicken Sie hier immer auf "Save all". Ihr Programm startet nun. Scheinbar passiert nicht viel, denn es wird "nur" das (noch leere) Programmfenster angezeigt. Wenn Sie aber mit dem Finder in Ihren Userordner (das ist der mit dem Häuschen) gehen, werden Sie dort die Datei "Wikibooks.db" vorfinden.
[Bearbeiten] Referenzieren von Objekten
Nachdem wir mit dem on opened theObject-Codeschnipsel sichergestellt haben, dass unsere Datenbankdatei existiert, können wir nun (endlich) beginnen unser Programmfenster mit Inhalt zu füllen. Klicken Sie wieder auf die "MainMenu.xib"-Datei aus dem Resources-Ordner, um so den Interface Builder zu starten (falls er nicht schon geöffnet ist). Neben dem Inspector gibt es noch das "Library"-Werkzeug. Dieses können Sie durch die Tastenkombination ApfelShiftL öffnen. Das Werkzeug hat die zwei Reiter "Objects" und "Media". Wir benötigen nun den Reiter "Objects". Hier finden Sie nun eine Liste aller Objekte, die Sie für Ihr Programmfenster verwenden können. Suchen Sie nach dem Objekt "Label" und ziehen Sie es in das Programmfenster. Bewegen Sie das Objekt an den oberen Rand des Programmfensters, denn das Label soll unsere Überschrift werden. Haben Sie dies getan, können Sie durch einen Doppelklick auf das Label den Text darin umändern. Wir schreiben hier mal "Wikibooks Befragung" hin und drücken RETURN.
Durch einen einfachen Klick wird das Objekt markiert. Sie erkennen das an den zwei bleuen Punkten links und rechts neben dem Objekt. Wenn Sie jetzt auf einen dieser Punkte klicken und die Maustaste gedrückt halten, können Sie die Größe des Labels verändern. Das machen wir aber erst nachdem wir den Text fett formatiert und vergrößert haben. Durch die Tastenkombination Apfelb wird der Text fett. Durch die Tastenkombination Apfel+ wird der Text vergrößert (Apfel- verkleinert ihn). Drücken Sie so oft Apfel+, bis die Überschrift "Wikibooks Befragung" für Sie groß genug dargestellt wird. Jetzt können Sie mit den blauen Punkten an den Seiten den dargestellten Bereich anpassen.
Lassen Sie das Objekt markiert (erkennbar an den beiden blauen Punkten) und öffnen Sie den Inspector (ApfelShifti). In der Attribute-Ansicht sehen Sie, dass der Title schon in "Wikibooks Befragung" geändert wurde. Wechseln Sie nun in die AppleScript-Ansicht (im Inspector-Kopf das Symbol ganz rechts). Wählen Sie hier zunächst unter "Scripts" die Datei "Wikibooks_Demo.applescript". Jetzt können Sie dem Objekt einen Namen geben. Wir setzen den Namen auf "ueberschrift". Beachten Sie bitte, dass Sie keine Sonderzeichen wie z.B. Umlaute für den Namen verwenden! Einen Event-Handler wählen wir nicht aus.
Gehen Sie jetzt wieder zur "Library" und wählen Sie unter "Objects" einen Button aus, der Ihnen gefällt (z.B. den "Textured Button"). Ziehen Sie den Button in Ihr Programmfenster und platzieren Sie ihn mit etwas Abstand unter die Überschrift "Wikibooks Befragung". Sie sehen, dass der Button dort mit blauen Punkten umrandet ist. Wenn Sie auf einen der Punkte klicken und die Maustaste gedrückt halten, können Sie so die Größe des Buttons verändern. Ausserdem erkennen Sie an den Punkten, dass das Objekt markiert ist. Wechseln Sie nun zum Inspector. In der Attribute-Ansicht tragen wir im "Titel"-Feld "Befragung starten" ein. Wechseln Sie nun in die AppleScript-Ansicht. Hier muss wieder zuerst unter "Script" die Datei "Wikibooks_Demo.applescript" angegeben werden. Jetzt tragen Sie in das "Name"-Feld den Namen "start" ein. Setzen Sie im Event-Handlers-Bereich unter "Action" ein Häkchen bei "clicked". Hiermit legen Sie fest, dass etwas passieren soll (Code ausführen), wenn jemand auf den Button klickt.
Öffnen Sie nun per Doppelklick die Datei "Wikibooks_Demo.applescript". Sie werden sehen, dass hier automatisch am Dateiende ein neuer Bereich erstellt wurde: on clicked theObject
Um den Buttonklick abfangen zu können, ersetzen Sie (*Add your script here.*) durch folgenden Code:
if name of theObject = "start" then--wenn auf das Objekt "start" geklickt wurde, dann...
set content of text field "ueberschrift" of window "hauptfenster" to "Kuckuck"--ersetze den Inhalt des Textfelds "ueberschrift"
end if
Klicken Sie auf "Build and Go" um ihr Programm zu kompilieren und zu starten. Klicken Sie auf den Button "Befragung starten" und sehen Sie, was geschieht.
Der Codeschnipsel besagt (auf deutsch) folgendes:
- Wenn das angeklickte Objekt "start" heißt (und so haben wir ja den Button benannt), dann
- setze den Textinhalt des Textfelds "ueberschrift" im Fenster "hauptfenster" auf "Kuckuck"
Dieser Codeschnipsel ist natürlich völlig sinnlos, zeigt aber, wie die Referenzierung in AppelScript Studio funktioniert:
- Code wird nur zwischen on (...)-Bereichen ausgeführt.
- durch gezielte if-Abfragen wird unterschieden, was der User getan hat (z.B. welchen Button er geklickt hat)
- das Abfragen und Setzen von Objektinhalten geschieht über den Objektnamen, der über den Inspector in der AppleScript-Ansichtvergeben wurde
- in manchen Fällen muss zusätzlich der Namen des Programmfensters angegeben werden, in welchem das Objekt platziert ist
[Bearbeiten] Das Beispielprogramm "Wikibooks-Demo"
So, da wir jetzt die Grundprinzipien kennen, können wir das eigentliche Beispielprogramm "Wikibooks-Demo" erstellen.
[Bearbeiten] Das Hauptfenster
Zunächst erweitern wir das Hauptfenster ein wenig. Gehen Sie dazu in den Interface Builder. Einen Button "Befragung starten" (mit dem AppleScript Namen "start") haben wir ja bereits erzeugt. Nun sollen zwei weitere Buttons folgen. Den ersten nennen wir "Daten exportieren" und geben ihm den AppleScript Namen "export", den zweiten nennen wir "beenden" und geben ihm auch den AppleScript Namen "beenden". Für beide Buttons wird unter Script die Datei "Wikibooks_Demo.applescript" gewählt und bei den EventHandlers ein Haken bei "clicked" gesetzt. Die Buttons ordnen wir so im Fenster an, dass sie untereinander unter der Überschrift dargestellt werden. Die Fenstergröße können Sie noch so anpassen, dass das Ganze "schön" und symmetrisch aussieht.
Ist dies geschehen, können wir ein paar Zeilen Code schreiben. Öffnen Sie die Datei "Wikibooks_Demo.applescript". Im Bereich on clicked theObject steht noch unser Sinnlos-Codeschnipsel "Kuckuck". Dieser wird nun wie folgt geändert:
on clicked theObject
if name of theObject = "beenden" then--wenn auf das Objekt "beenden" geklickt wurde, dann...
quit--beende das Programm
end if
if name of theObject = "start" then--wenn auf das Objekt "start" geklickt wurde, dann...
show window "Eingabe"--öffne das Programmfenster "Eingabe"
end if
if name of theObject = "export" then--wenn auf das Objekt "export" geklickt wurde, dann...
show window "Export"--öffne das Programmfenster "Export"
end if
end clicked
Die beiden Programmfenster "Eingabe" und "Export" existieren noch nicht, und darum werden wir sie jetzt erstellen.
[Bearbeiten] Das "Eingabe"-Fenster
Für die Dateneingabe erstellen wir ein neues Programmfenster und eine dazugehörige AppleScript-Datei. Natürlich könnten wir auch den gesamten Code in der Datei "Wikibooks_Demo.applescript" eingeben, dies ist aber nicht sehr übersichtlich. Erstellen wir also zunächst eine neue .applescript-Datei. Gehen Sie hierzu nach Xcode und markieren Sie den Ordner "Scripts". Klicken Sie jetzt in der Menüleiste unter "File" auf "New File...". Es öffnet sich ein Dialogfenster, in welchem wir die Option "AppleScript Text File" auswählen und auf "Next" klicken (nicht AppleScript Script File, weil dies für bereits kompilierte Scripte gilt!). Als Dateinamen geben wir "Dateneingabe1.applescript" an und klicken auf "Finish". Jetzt ist die neue Scriptdatei im Ordner "Scripts" einsehbar.
Anschließend erstellen wir das neue Programmfenster. Hierfür gehen wir in den Interface Builder und wählen aus der Library (ApfelShiftL) den Eintrag "Window" aus. Diesen ziehen wir einfach aus der Library heraus, und schon ist ein neues Programmfenster erstellt. Klicken Sie jetzt auf die Kopfleiste des neuen Programmfensters und wechseln Sie in die Attribute-Ansicht des Inspectors.
- Unter "Title" tragen wir "Basisdaten eingeben" ein
- Entfernen Sie die Häkchen bei "Close", "Rezise" und "Minimize"
- Entfernen Sie das Häkchen bei "Visible at Launch". Hierdurch gehen wir sicher, dass das Fenster nur angezeigt wird, wenn wir es im Code aufrufen.
Wechseln Sie nun in die AppleScript-Ansicht des Inspectors und wählen Sie zuerst unter "Script" die neue Datei "Dateneingabe1.applescript" aus. Jetzt setzen wir im "Namen"-Feld den AppleScript-Namen des neuen Programmfensters auf "Eingabe", denn unter diesem Namen wird es ja durch Klick auf den "Befragung starten"-Button des Hauptfensters angesprochen (in unserem Fall geöffnet). Im Event Handler-Bereich setzen wir unter "Window" ein Häkchen bei "opened".
Jetzt füllen wir das Fenster mit Inhalt (siehe Bild):
- Ein Label mit dem Inhalt "Bitte geben Sie die Basisdaten des Probanden ein"
- Ein Label mit dem Inhalt "Datum:"
- Ein Label mit dem Inhalt "Alter:"
- Ein Label mit dem Inhalt "Geschlecht:"
- Ein TextField mit dem Applescript-Namen "datum" und dem Script "Dateneingabe1.applescript" ohne EventHandler
- Ein TextField mit dem Applescript-Namen "jahre" und dem Script "Dateneingabe1.applescript" ohne EventHandler
- Ein RadioGroup-Feld mit dem Applescript-Namen "geschlecht" und dem Script "Dateneingabe1.applescript" ohne EventHandler. Geben Sie dem RadioButton-Feld die Einträge "männlich" und "weiblich"
- Ein Button mit dem Inhalt "weiter" und dem Applescript-Namen "weiter" und dem Script "Dateneingabe1.applescript" und dem Event Handler "clicked"
- Ein Button mit dem Inhalt "zurück" und dem Applescript-Namen "back" und dem Script "Dateneingabe1.applescript" und dem Event Handler "clicked"
Ordnen Sie die Felder so an, wie auf dem Bild rechts angezeigt.
Wenn Sie mit dem Aussehen des Fensters zufrieden sind, können wir den Code eingeben. Öffnen Sie also die Datei "Dateneingabe1.applescript". Sie sehen, dass die Datei bereits folgenden Inhalt besitzt:
on opened theObject (*Add your script here.*) end opened on clicked theObject (*Add your script here.*) end clicked
Widmen wir uns zunächst dem on opened-Bereich. Wir möchten, dass im Datum-Feld das aktuelle Datum angezeigt wird, so dass man es nicht immer extra eingeben muss (Das "Datum"-Feld dient dazu abzuspeichern, an welchem Tag die Befragung durchgeführt wurde. Wir gehen davon aus, dass die meisten Daten direkt eingegeben - und nicht von z.B. einem Fragebogen übertragen werden. Daher ist das automatische Einfügen des aktuellen Datums sehr benutzerfreundlich). Das Umschreiben des Datums in das Format "2008-12-24" ist in AppleScript etwas umständlich. Im folgenden Codeblock sehen Sie, wie umständlich es ist. Bis auf die vorletzte Zeile ist der gesamte Code nur dafür da, das richtige Format zu erstellen. In der vorletzten Zeile wird das aktuelle Datum dann (endlich) in das TextField "datum" des Programmfensters geschrieben. Wir fügen folgenden Code innerhalb des on opened-Bereichs ein:
on opened theObject
--- aktuelles Datum
set dummy to (current date)
set MonatsListe to {January, February, March, April, May, June, July, August, September, October, November, December}
-- Monat als Zahl schreiben
repeat with i from 1 to 12
if dummy's month = item i of MonatsListe then
set Monat to text -2 thru -1 of ("0" & i)
exit repeat
-- wenn true, wird die Schleife verlassen
end if
end repeat
set derTag to text -2 thru -1 of ("0" & dummy's day) -- Tag schreiben
set Jahr to (year of dummy) as text -- Jahr schreiben
-- Datum zusammenbauen
set aktuelllesDatum to Jahr & "-" & Monat & "-" & derTag--jetzt haben wir das Datum im Format "2008-12-24"
set content of text field "datum" of window "Eingabe" to aktuelllesDatum--hier wird der Inhalt des "Datum"-Felds auf das aktuelleDatum gesetzt.
end opened
[Bearbeiten] Das "Export"-Fenster
[Bearbeiten] Dem Programm ein Icon hinzufügen
In diesem Abschnitt wird erklärt, wie Sie Ihrem Xcode-Projekt ein individuelles Programm-Icon hinzufügen können.
Jedes Apple-Programm hat ein schickes Icon, welches im Dock angezeigt wird, sobald das Programm aktiv ist. Für Xcode-Projekte wird ein Standard-Icon verwendet. Wenn Sie ein individuelles Icon verwenden möchten, benötigen Sie dieses im ".icns"-Format. Mit den Developer Tools wurde auch die passende Software zum Erstellen von Icons auf Ihre Festplatte installiert: der Icon Composer. Sie finden das Programm im Hauptverzeichnis der Festplatte unter "Developer/Applications/Utilities/".
|
|
|
|
|
Jetzt muss diese .icns-Datei dem Projekt hinzugefügt werden. Gehen Sie daher zurück ins Hauptfenster von Xcode.
|
|
|
|
Damit diese auch als Programm-Icon verwendet wird, müssen noch 3 weitere Klicks von Ihnen getätigt werden.
|
|
|
Wenn Sie das Programm nun starten, wird das Icon im Dock angezeigt.
