Fehler beim verbinden (storyboard) Ausgang aus (NSApplication) (NSNibExternalObjectPlaceholder) Fehler im Kakao-und storyboard
Habe ich versucht, den Aufbau einer sample-Cocoa-app, auf die ich verbinden will UI-Komponenten setzen auf dem storyboard zu ViewController.swift
entweder als ein IBOutlet
oder IBAction
. Allerdings, wenn ich versuchte, Sie zu kontrollieren-ziehen Sie die UI-Komponenten auf storyboard (wie NSButton
) ViewController.swift
und erstellen Sie eine @IBAction
Methode, und führen Sie dann die Anwendung, die resultierende app protokolliert die folgende Meldung in der Konsole und natürlich ist die app nicht Antworten mir auf die Schaltfläche Tippen.
Failed to connect (storyboard) outlet from (NSApplication) to (NSNibExternalObjectPlaceholder): missing setter or instance variable
Wie kann ich die IBAction
Methode richtig?
Für Ihre Informationen, hier ist meine ViewController.swift
:
import Cocoa
class ViewController: NSViewController {
@IBOutlet var txtTitle : NSTextField
@IBOutlet var boxColor : NSBox
override func viewDidLoad() {
super.viewDidLoad()
}
func colorChanged(cp: NSColorPanel) {
let c:NSColor = cp.color;
self.boxColor.fillColor = c
}
@IBAction func btnSetColor(sender : AnyObject) {
let cp:NSColorPanel = NSColorPanel.sharedColorPanel()
cp.setTarget(self)
cp.setAction("colorChanged:")
cp.orderFront(nil)
}
@IBAction func btnSetWindowTitle(sender : AnyObject) {
if self.txtTitle.stringValue != "" {
println(self.title)
println(self.txtTitle.stringValue)
self.title = self.txtTitle.stringValue
}
}
}
Benutze ich Xcode 6 beta auf OS X 10.10 Yosemite. Und begann mit der Vorlage storyboard auf.
InformationsquelleAutor Blaszard | 2014-06-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der IBAction-Methoden arbeiten, wie es sein sollte, siehe Apple-Dev-Foren:
Apple-Dev-Forum: OS X Storyboard Fehler
Das ist nicht, warum dein code nicht funktioniert, müssen Sie beheben die folgenden:
A) Hier ist mein Arbeits-code, um den Titel - mit selbst.Blick.Fenster.Titel stattdessen selbst.Titel:
B) Im Interface Builder müssen Sie NSBox "Box-Typ" auf "Benutzerdefiniert":
:
InformationsquelleAutor two
Während die Antwort oben richtig feststellt, dass dies nicht der Grund für die Kompilierung Probleme, dachte ich, ich wäre zu klären, für diejenigen, die einfach nur schauen, um zu beseitigen die Warnung Nachrichten insgesamt. Das war es, was ich suchte, als ich diese Seite gefunden.
Wenn Sie den Aufbau Ihrer Aktionen und einige der Aktionen ändern oder löschen in das storyboard, die Steckdosen bleiben. Wählen Sie die controller/Fenster, wo der ältere unbenutzte Aktionen verwendet werden, und Sie werden noch sehen, wie Sie in der
outlets
segment von der storyboard-in die Registerkarte Attribute. Entfernen Sie diese alten Aktionen/outlets gibt und dann die Warnung verschwinden.Suchen Sie nach Duplikaten zwischen den ViewController und der Besitzer der Datei. Eine oder beide möglicherweise halten Sie diese Objekte, wenn Sie nicht sein sollte. Entfernen diese entfernen, entfernen Sie diese soft-Warnungen.
InformationsquelleAutor Jay Snayder
Ich glaube, ich habe die richtige Lösung.
1) Ziehen Sie ein Objekt in Sie xib-Schnittstelle.
2) Klicken Sie auf das Objekt in der linken Liste, die Sie gerade gezogen.
3) Binden Sie das Objekt, um Ihre benutzerdefinierte Klasse.(Hier meine Klasse, ist ein login-Fenster-controller als Beispiel)
4) Strg-Taste ziehen, um den source-code. In dem popup-Fenster, wählen Sie Ihre Klasse Namen(hier im Beispiel ist das Login-Fenster für Controller), nicht als File ' s Owner.
Hoffe das konnte dir helfen.
InformationsquelleAutor ManuQiao
Ich gefunden habe, eine andere einfachere Lösung diesen Tagen während dem Programmieren.
Check this out.
1) Wählen Sie die File ' s Owner im Document Outline .xib-Datei.
2) Geben Sie die Klasse, die Sie wünschen .xib-Datei, um mit zu verbinden.
3) wenn Sie Nun schließen Sie Steckdose, um die Quelldatei, verwenden Sie einfach Standard-File ' s Owner. Viel einfacher ist.
4) ich denke, es ist nicht genug so weit. Ich habe eine Ausnahme bei Ausführung namens 'geladen 'xxx' Spitze, aber die Aussicht Steckdose war nicht gesetzt'. Sollten wir etwas mehr.
Wählen Sie die Ansicht im Dokument Gliederung. Ziehen Sie aus dem Kreis der New Referencing Outlet auf File ' s Owner im Document Outline.
Okay, das ist der neue einfachere Lösung. Keine weiteren Objekte hinzufügen sollte, in der xib. Wenn es nicht funktioniert, lassen Sie Ihre Kommentare unter.
InformationsquelleAutor ManuQiao