Diese Seite ist wahrscheinlich veraltet (zuletzt bearbeitet am 06 Aug 2009). Besuchen Sie die neue Dokumentation für aktualisierten Inhalt. MonoTouch Tutorial HelloiPhone Dieses Tutorial erklärt, wie man MonoTouch und die MonoTouch API verwendet, um Anwendungen für das iPhone zu bauen. Der Schwerpunkt dieses Artikels liegt auf dem zugrunde liegenden Rahmen und nicht auf, wie die IDE für die Entwicklung zu verwenden. Weitere Tutorials finden Sie unter MonoTouch Tutorials. Die kleinste MonoTouch-Anwendung, die nur startet und heruntergefahren wird, ist: Verwenden Sie Ihren bevorzugten Texteditor, um eine Datei namens hello. cs mit dem obigen Inhalt zu erstellen. Dann müssen Sie das oben mit einem C-Compiler kompilieren, zum Beispiel: An diesem Punkt haben Sie zwei Optionen, eine ist, um das resultierende Programm auf dem Simulator auszuführen, und das andere ist, um es auf ein Gerät. Um auf dem Simulator laufen, müssen Sie nur das iPhone SDK auf Ihrem System installiert haben. Die Bereitstellung auf einem Gerät erfordert, dass Sie ein autorisierter Apple-Entwickler sind und die Tools zur Einrichtung auf einem Gerät eingerichtet haben, da es sich hierbei um ein aufwendigeres Setup handelt, das in einem separaten Dokument abgelegt wird. Weitere Informationen hierzu finden Sie im MonoTouch-Mtouch-Dokument. Die iPhone-Bereitstellung enthält nicht nur Ihr Programm, sondern auch Datendateien, Konfigurationsdateien und Manifeste. Um Ihre. exe in ein Paket zu verwandeln, verwenden Sie den Befehl mtouch, wie folgt: Das wird die Hello. app für den Einsatz im Simulator vorbereiten. Kann das Programm im Simulator mit dem Befehl mtouch starten. Wie dies: Die oben wird die Anwendung auf Ihrem iPhone Simulator ausgeführt und die Standard-Ausgabe Ihres Programms wird an die Datei-Ausgabe gesendet werden. In dieser Datei sehen Sie die Nachricht Hallo, die von unserer Main-Methode erzeugt wurde. IPhone-Anwendungen sind GUI-Anwendungen, die das UIKit-Framework verwenden. Wie andere GUI-Frameworks ist es notwendig, die GUI-Ereignisbearbeitung zu starten. Dies geschieht durch Aufruf der UIApplication. Main-Methode. Diese Methode führt eine Reihe von Initialisierungsschritten durch (wie Laden von beliebigen UI-Definitionen aus einer NIB-Datei) und die Verarbeitung von Ereignissen aus dem System und deren Versand an Ihre App. Die Methode UIApplication. Main verwendet drei Argumente: ein Array von Zeichenfolgen, die die Aufrufparameter, den Namen der Klasse UIApplication und den Namen der UIApplicationDelegate-Klasse als Strings repräsentieren. Die Namen sind die Namen Ihrer C-Klassen, und sie können null sein, wenn Sie die Standardeinstellungen erhalten möchten. Normalerweise verwenden Sie nur die Standard-UIApplication-Implementierung, aber Sie werden mindestens den Namen Ihrer UIApplicationDelegate-Instanz angeben. Wenn Sie den Parameter für den Delegaten in UIApplication. Main nicht angeben, wird der Name der Klasse für den Delegaten aus Ihrer Haupt-XIB-Datei entnommen. UIApplication. Main wird die Instanzen der Klassen, die Sie bereitgestellt und verbinden Sie die Instanz des UIApplicationDelegate mit der UIApplication. Delegate-Eigenschaft. Dieses UIApplicationDelegate erhält verschiedene Benachrichtigungen von der UIA-Anwendung. Die wichtigste Benachrichtigung ist, dass die Anwendung das Laden und Initialisieren beendet hat. Hier werden Programmierer die Benutzeroberfläche der Anwendung vorbereiten. Das folgende Beispiel zeigt, wie dies gemacht wird: Im obigen Beispiel erstellen wir eine Unterklasse von UIApplicationDelegate und wir registrieren diese mit der MonoTouch-Laufzeit, indem wir die Klasse mit dem Registerattribut verzieren. Dann überschreiben wir die Methode FinishedLaunching, um unsere Benutzeroberfläche zu initialisieren. In dieser Methode verwenden wir die C 3.0-Syntax, um in einer einzigen Anweisung unser Toplevel-Fenster (unter Verwendung der aktuellen Bildschirmdimensionen) sowie ein Etikett zu erstellen, das an Position 50, 50 mit 230 Pixeln Breite und 100 Pixeln Höhe angezeigt wird. Das Label enthält die Welt Hello von MonoTouch. Der letzte Methodenaufruf macht das Fenster zum Schlüsselfenster und zeigt es auf dem Bildschirm. MonoDevelop HelloWorld Grundlagen von MonoDevelop und Interface Builder Sobald Sie MonoDevelop gestartet haben, sollten Sie mit seinem Startbildschirm begrüßt werden, der so aussieht: Der erste Schritt ist Um eine Lösung für Ihr Projekt zu erstellen. Ihre Lösung enthält Ihre Hauptanwendung. Sie können später weitere Komponenten zu Ihrer Lösung hinzufügen, wie Bibliotheken, die Sie entwickeln, Unit-Tests und die Website für Ihre Anwendung. Um die Lösung zu erstellen, drücken Sie entweder Shift-Command-N oder wählen FileNewSolution aus dem Menü: Wählen Sie im Dialogfeld Lösung in der Kategorie C, in den iPhone-Projekten, und wählen Sie dann das iPhone MonoTouch-Projekt aus. Geben Sie Ihrem Projekt einen Namen und klicken Sie auf Weiter, um die Einrichtung der Lösung abzuschließen. Sobald Ihre Lösung erstellt ist, sehen Sie auf der linken Seite des Bildschirms Ihr Lösungsfeld. Wenn das Lösungsfeld nicht sichtbar ist, wählen Sie ViewSolution aus der Menüleiste aus. Erweitern Sie die Lösung und das Projekt, um zu sehen, was Ihr Projekt hat: Es gibt eine Reihe wichtiger Stücke in dieser Liste, die es wert sind, aufzählen. Die Standardvorlage für MonoTouch-Anwendungen stellt eine Main. cs-Datei zur Verfügung, die Ihr Hauptprogramm enthält, die Ihre Main () - Methode enthält, die Ihre Anwendung startet und die Anwendungsereignisschleife startet. Als Praxis sollten Sie die Steuerung an UIApplication. Main () übertragen, sobald Sie starten. Diese Methode lädt Ihre Benutzeroberfläche von MainWindow. xib. Erstellen Sie eine Instanz der AppDelegate-Klasse und starten Sie die Verarbeitung von Ereignissen. Die AppDelegate-Klasse in der Standardvorlage erbt von der MonoTouch. UIApplicationDelegate-Klasse und enthält mehrere Methoden, die Sie überschreiben können, um auf Betriebssystemereignisse zu reagieren. In der Standardvorlage überschreiben wir lediglich die FinishedLaunching-Methode, die Methode, die aufgerufen wird, wenn die Startprozedur abgeschlossen ist. Im Lösungsfenster sehen Sie, dass unterhalb der MainWindow. xib-Datei MonoDevelop eine C-Datei namens MainWindow. xib. designer. cs erstellt hat. Diese Datei wird jedes Mal automatisch aktualisiert, wenn Sie Änderungen an der XIB-Datei vornehmen und alle Ansichten, Steuerungen, Ausgänge und Aktionen, die Sie zu Ihrer Benutzeroberfläche hinzufügen, abbilden und die C-Eigenschaften zuordnen, auf die Sie von Ihrem Programm aus zugreifen können. Wenn Sie die Anwendung jetzt ausführen, wird es nichts Interessantes tun. Ein leerer Bildschirm erscheint in Ihrem iPhone Simulator. Wir werden eine sehr einfache Benutzeroberfläche mit einer Schaltfläche erstellen, die Sie berühren können, und ein Label, das seinen Inhalt aktualisiert wird, jedes Mal, wenn Sie auf die Schaltfläche tippen. Verwenden von Interface Builder mit MonoTouch Starten Sie den Interface Builder, indem Sie auf die Datei MainWindow. xib doppelklicken. Sobald Interface Builder gestartet wird, sollten Sie eine Oberfläche (Ihr Fenster) und eine Bibliothek, die verschiedene Komponenten enthält, sehen. Ihre Bibliothek sollte wie der folgende Screenshot aussehen. Wenn es nicht vorhanden ist, wählen Sie Bibliothek aus dem Menü Extras: Wählen Sie die Eingaben und Werte wie auf dem Screenshot angezeigt, und ziehen Sie sowohl einen Round Rect Button in die Oberfläche und ein Label in es. Doppelklicken Sie auf die Schaltfläche, um den Text zu ändern, um zu sagen Tippen Sie auf mich und stellen Sie sicher, dass das Etikett dehnt und zentriert ist. Die Ausrichtung kann im Attributes Inspector (auch im Menü Extras) konfiguriert werden. Das Ergebnis sollte mehr oder weniger wie folgt aussehen: Im Gegensatz zu Windows. Forms, Gtk oder ASP, wo Objekte, die in die Design-Oberfläche gezogen werden, eine Kennung haben, die Sie direkt aus Ihrem Quellcode beziehen können, wird mit Interface Builder ein anderes Modell verwendet. Um Komponenten miteinander zu verbinden, müssen Sie Ausgänge in Ihren Klassen definieren. Diese Outlets zur Laufzeit werden in C-Eigenschaften abgebildet, auf die Sie zugreifen können. In unserem Beispiel wollen wir sowohl das Etikett als auch die Schaltfläche aus unserem C-Code zugreifen, so dass wir für jedes Steuerelement, das wir zugreifen möchten, eine Steckdose definieren und dann die Steckdose drahten. Wir werden das als nächstes erklären. Damit der Anwendungsdelegat auf die Schaltfläche und das Label zugreifen kann, müssen wir diese Steuerelemente mit ihm verbinden. Wählen Sie den App-Delegaten in Ihrem Dokumentfenster aus. Und dann im Identity Inspector sollte man so etwas wie den Screenshot unten sehen. Wenn dies nicht der Fall ist, wählen Sie im Menü Extras die Option Identitätsinspektor aus: Wir erstellen zwei Klassenstellen im Anwendungsdelegaten. Jeder Ausgang, den wir in der Benutzeroberfläche erstellen, wird als Eigenschaft in einer Teilklasse in der Datei MainWindow. designer. xib. cs widergespiegelt. Erstellen Sie eine für das Etikett, und eine für die Schaltfläche, indem Sie auf die Schaltfläche im Abschnitt Class Outlet dieses Bereichs klicken. Sobald Sie fertig sind, sollte es wie folgt aussehen: Sobald diese Outlets definiert wurden, können Sie auf die Registerkarte Verbindungen im Inspector wechseln. Sie werden sehen, dass die Etiketten - und Knopfleisten noch nicht verdrahtet sind, sieht so aus: Der nächste Schritt besteht darin, das Etikett und den Knopf mit den Bedienelementen zu verbinden, die wir zuvor unserer Oberfläche hinzugefügt haben. Wenn Sie über die leeren Kreise schweben und dann klicken und ziehen, wird eine Linie aus dieser Steckdose zu anderen Komponenten auf dem Bildschirm gezogen werden. Zuerst verbinden Sie den Etikettenausgang mit dem Label-Regler auf der Designer-Oberfläche, wie folgt: Wiederholen Sie diesen Vorgang, diesmal mit der Schaltfläche: Sobald Sie diese zwei Outlets verkabelt haben, sollten Sie folgendes sehen: Speichern Sie Ihre Datei, indem Sie auf Command-S und Wechseln Sie zurück zu MonoDevelop. Hinzufügen von Verhalten Um der Entmystifizierung zu entgehen, was hinter den Kulissen geschieht, doppelklicken Sie auf die Datei "MainWindow. designer. xib. cs". Sie sehen, dass hinter den Kulissen MonoDevelop für jede Steckdose einen Eigenschaftenzugriff erzeugt hat: Md hw iphone18.png Diese Datei Wird bei jedem Ändern der XIB-Datei mit dem Interface Builder automatisch aktualisiert. Nehmen Sie keine Änderungen an dieser Datei vor, da alle Änderungen, die Sie machen, beim nächsten Aktualisieren der XIB-Datei verloren gehen. Dies ist eine von MonoDevelop generierte Datei, die Sie während der Entwicklung vollständig ignorieren können. Die Eigenschaften werden in einer Teilklasse gespeichert, sodass der Compiler Ihr AppDelegate in Main. cs mit diesen autogenerierten Eigenschaften kombiniert. Gehen Sie zurück zu Ihrer Main. cs Datei. Wir werden ein wenig C-Code hinzufügen. In der AppDelegate-Klasse können Sie nun Referenzfenster. Label und Button als Eigenschaften Ihrer Instanz. Sie können dies verwenden, um die Steuerelemente anzupassen oder ihr Verhalten zu ändern. Lassen Sie uns ein Event-Handler für das TouchDown-Ereignis anhängen, ein Ereignis, das ausgelöst wird, wenn der Benutzer auf die Schaltfläche tippt. MonoDevelops Code-Vervollständigung wird Ihnen helfen, die API zu navigieren, wie Sie Code schreiben: Sie sollten so etwas schreiben: Das oben genannte verwendet die C 3.0-Syntax, um ein Stück Code an einen Event-Handler anzufügen und zeigt, wie der Inhalt des MonoTouch. UILabel ändern Die erstellt wurde. Die Variable ntaps wird vom Compiler erfasst und wird zum Schließvorgang für den Event-Handler, so dass jedes Mal, wenn der Benutzer auf den Bildschirm tippt, die Variable entsprechend aktualisiert wird. Erstellen Sie Ihre Anwendung mithilfe von Befehl-B oder wählen Sie BuildBuild aus, und wählen Sie dann RunRun, um Ihre Software auf dem iPhone-Emulator bereitzustellen (oder drücken Sie die Alt-Befehlstaste). Sie sollten dies sehen: Verwenden von Aktionen Der im vorherigen Abschnitt verwendete Stil war der C 3.0-Stil und eignet sich für eine breite Palette von Anwendungen. Der folgende Abschnitt ist nur erforderlich, wenn Sie den Objective-C-Stil zum Einhängen von Ereignissen verwenden möchten. Aktionen können im Interface Builder in der gleichen Registerkarte definiert werden, mit der wir die Ausgänge definiert haben. Als Beispiel für die Verwendung von Aktionen in Ihrem Code, werden wir eine weitere Schaltfläche auf dem Bildschirm hinzufügen, in meinem Fall sieht es wie folgt aus: Dann wählen Sie das App-Delegate-Objekt in Ihrem Dokumentfenster, und gehen Sie zum Informationsfenster. Dieses Mal werden wir statt Aktionen hinzufügen. Fügen Sie eine Aktion namens sampleTap hinzu, die wie folgt aussehen sollte, wenn Sie fertig sind: Der nächste Schritt besteht darin, das Schaltflächenereignis an unser AppDelegate zu senden. Wählen Sie dazu die Schaltfläche auf der Registerkarte Verbindungen aus. Schließen Sie nun das Touch-Down-Ereignis an den App-Delegaten an: Wenn Sie den App-Delegaten auswählen, werden Sie aufgefordert, die Aktion dort aufzurufen. In diesem Fall ist es der Beispieltap, den wir oben definiert haben. Wählen Sie es aus: Jetzt sollten Ihre Outlets und Aktionen wie für Ihre AppDelegate aussehen: Speichern Sie Ihre Datei und gehen Sie zurück zu MonoDevelop. Wenn Sie die Aktion mit Ihrem Code verbinden, sucht MonoTouch nach einer Methode, die mit einem Attribut MonoTouch. Foundation. Export verziert ist, das den Namen der Aktion angibt. MonoDevelop generiert automatisch eine partielle Methode in der CodeBehind-Designer-Klasse, wobei dieses Attribut beispielsweise für sampleTap angewendet wird: In Ihrer AppDelegate-Klasse kann die MonoDevelops-Code-Vervollständigung das Schreiben der partiellen Methodenimplementierung unterstützen: Sie können die partielle Methode jedoch ignorieren Definieren und stattdessen die Handlersignatur und ihr Exportattribut manuell schreiben. Der C-Compiler ignoriert Teilmethoden ohne Implementierungen. Es gibt weitere Informationen über die Bindung in der Antwort auf Ereignisse Abschnitt der API. Bereitstellen auf dem Gerät MonoDevelop kann eine MonoTouch-Anwendung auf einem ordnungsgemäß bereitgestellten Gerät bereitstellen. Schalten Sie die Lösungskonfiguration auf eine der Gerätekonfigurationen um, z. B. Debuggen Wenn Sie Ihr Projekt für die Gerätekonfiguration erstellt haben, wird der Befehl Upload to Device im Menü Ausführen aktiviert. Wenn Sie diesen Befehl ausführen, wird die Anwendung auf das Gerät hochgeladen. In den Projektoptionen gibt es auch eine Reihe von Einstellungen für das App-Bundle, z. B. das Angeben des Symbols oder einen bestimmten Code-Signierungsschlüssel. Wenn es eine Info. plist-Datei in Ihrem Projekt gibt, fügt MonoDevelop die App-Bundle-Einstellungen zusammen, ohne vorhandene Schlüssel zu überschreiben. Auf diese Weise können Sie erweiterte Einstellungen verwenden, die nicht von der MonoDevelop-GUI bereitgestellt werden. Hier sind einige Hinweise, um tiefer in MonoDevelop und Interface Builder zu graben:
No comments:
Post a Comment