2014-07-02 5 views
32

Ich bin neu bei Xcode, arbeite durch Swift, daher bin ich mir nicht sicher, ob das, was ich beschreibe, tatsächlich ein Bug ist.Xcode Interface Builder - "korrekte" Möglichkeit zum Entfernen/Umbenennen falscher IBoutlets/IBactions

Wenn ich Interface Builder und den Assistenten Editor benutze, kann ich Lables, Buttons usw. erstellen und Outlets und Action im Code mit einem Control-Drag erstellen.

Solange ich perfekt bin, kein Problem. Aber ich stoße auf Probleme, wenn ich zum Beispiel den Objektnamen falsch schreibe. Oder ich wähle Steckdose statt Aktion. Ich finde keinen Weg, eine Korrektur zu machen, die die IDE nicht total vermasselt. Selbst wenn ich das Objekt in der IB und den Code lösche, scheint es Probleme beim Bauen zu hinterlassen. Oder, wenn ich versuche, die Zeile im Code zu löschen und sie erneut zu ziehen, wird eine neue Codezeile erstellt, aber das Objekt scheint nun auf den neuen Namen und den alten, jetzt fehlenden Namen zu verweisen.

Wieder arbeite ich mit Swift --- Da ich Objective-C nicht benutze/kenne, weiß ich nicht, ob es ein ähnliches Verhalten in dieser Sprache gibt.

Schätzen Sie alle Zeiger. (Verwenden Sie nicht den Interface-Builder/Storyboards/Swift.)

+0

Um zu klären - was ist der beste Weg, um einen einfachen Rechtschreibfehler zu korrigieren?(Oder ich habe einfach einen schlechten Namen gewählt, und jetzt möchte ich das beheben - also steht der Name nicht nur in der Verbindung, sondern im ganzen Code. (ZB FInd/Replace, der das IB selbst enthält?) –

+0

Um a umzubenennen IBOutlet ohne die Verbindung zu löschen versuchen Sie das. Http://Stackoverflow.com/a/37313505/7250862 –

Antwort

53

Verwenden Sie den Inspektor Verbindungen, um die Verbindung zu trennen. Dann können Sie das Objekt und/oder den Code ändern/löschen, ohne sich Sorgen machen zu müssen.

enter image description here

+2

Danke - Ich habe meine eigene Frage aktualisiert, um zu klären: - Was ist der beste Weg, um einen einfachen Rechtschreibfehler zu korrigieren (oder besser noch, um zu korrigieren, um einen Variablennamen aussagekräftiger zu machen, erscheint dieser mehrmals im Code –

+1

@ user1639473 - Es gibt keine Suche/Ersetzung, die den IB selbst beinhaltet (AFAIK, sie können diese Funktion irgendwann hinzufügen) 1) breche die Verbindung 2) finde/ersetze im Code 3) stelle die Verbindung wieder her. Schritt 3 kann durch Ziehen mit der Maus aus dem IB-Objekt in die vorhandene Codezeile ausgeführt werden, oder Sie können (ohne Steuerelement) von dem leeren Kreis am * linken Rand des Code-Editors * zum Objekt * ziehen IB *. – user3386109

+0

Um ein Objekt umzubenennen, verwenden Sie Bearbeiten> Umgestalten> Umbenennen (oder klicken Sie mit der rechten Maustaste auf ein Objekt). Dadurch wird auch jeder IBOutlet-Verweis in Interface Builder umbenannt. –

6

Sie können nicht verwendete IBOutlets in der Datei, in der sie von der Suche in der „Gosse“ deklariert sind der Source-Editor für ein „ungefüllt Loch“.

enter image description here

8

Die akzeptierte Antwort ist in Ordnung, aber es gibt ein paar Möglichkeiten, um das Gleiche zu tun.

Methode eins

rechts die Ansicht im Storyboard klicken und dann durch die Referenzierung Auslass die kleinen x klicken.

enter image description here

Methode zwei

Rechtsklicken Sie auf den Namen der Ansicht in der Dokumentgliederung. Klicken Sie dann auf das kleine x am Referenzausgang.

enter image description here

Methode Drei

auf dem Storyboard Wählen Sie die Ansicht und dann die Verbindungen Inspector klicken. Dann können Sie auf das kleine x klicken, um eine Auslassreferenz zu entfernen.

enter image description here

Zusätzliche Referenzen in-Code

enter image description here

Wenn Sie Ausgangsanschlüsse in Code erhalten, die Sie nicht selbst this answer sehen hinzugefügt haben.

Verwandte Themen