xcode - 无法将( Storyboard) socket 从(NSApplication)连接到 Cocoa 和 Storyboard中的(NSNibExternalObjectPlaceholder)错误

标签 xcode cocoa storyboard swift

我试图构建一个示例 Cocoa 应用程序,我想在该应用程序上将 Storyboard上的 UI 组件连接到 ViewController.swift 作为 IBOutlet IBAction。但是,当我尝试控制拖动 Storyboard上的 UI 组件(例如 NSButton)到 ViewController.swift 并创建一个 @IBAction 方法时,然后运行应用程序,生成的应用程序在控制台中记录以下消息,当然应用程序不会响应我点击按钮。

Failed to connect (storyboard) outlet from (NSApplication) to (NSNibExternalObjectPlaceholder): missing setter or instance variable

如何正确使用IBAction方法?

关于您的信息,这是我的 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
        }
    }
}

我在 OS X 10.10 Yosemite 上使用 Xcode 6 beta。并在 Storyboard打开的情况下启动模板。

最佳答案

虽然上面的答案正确地指出这不是编译问题的原因,但我想我会为那些只想完全消除警告消息的人澄清一下。当我找到这个页面时,这就是我要找的东西。

当您构建 Action 并且某些 Action 发生变化或在 Storyboard 中被删除时,导出仍然存在。选择以前未使用的旧操作所在的 Controller /窗口,您仍会在属性选项卡中 Storyboard 的 outlets 部分中看到它们。删除那些旧的操作/导出,然后警告消失。

查找 ViewController 和文件所有者之间的重复项。一个或两个可能在不应该持有这些对象时持有这些对象。删除这些将删除这些软警告。

关于xcode - 无法将( Storyboard) socket 从(NSApplication)连接到 Cocoa 和 Storyboard中的(NSNibExternalObjectPlaceholder)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24229344/

相关文章:

cocoa - 如何在 cocoa 中制作下拉(非表格)窗口

ios - TableView圆角和阴影

ios - Xcode在实现一个类后不断重建

ios - 没有数据可用标签未显示在表格 View 中

ios - 缓存 NSDateformatter 应用程序范围的好主意吗?

objective-c - 在这种情况下,文档是什么?

ios - 如何像 Path Talk 应用程序一样编写设置 View Controller ?

ios - 如何使用约束使我们的 Freedom View Controller 可滚动?

ios - UITableViewController 在具有有效数据的 reloadData 上导致 NSRangeException

ios - Xcode 对带有 M1 芯片的 Macmini 抛出 arm64 架构错误