Xcode 为什么IB不提供在自定义Swift文件中插入@IBOutlet或@IBAction的选项?

Xcode 为什么IB不提供在自定义Swift文件中插入@IBOutlet或@IBAction的选项?,xcode,swift,cocoa,xcode7,Xcode,Swift,Cocoa,Xcode7,我创建了一个新的cocoa文件,它是NSObject的子类,并且符合NSTableView协议。当我尝试从IB中的NSButton连接IBOutlet或IBAction时,不会弹出任何选项。我试着双向连接 import Cocoa class TestTableController: NSObject, NSTableViewDataSource, NSTableViewDelegate { @IBOutlet weak var button:NSButton! } 然后连接它,但结果相同。

我创建了一个新的cocoa文件,它是
NSObject
的子类,并且符合
NSTableView
协议。当我尝试从IB中的
NSButton
连接
IBOutlet
IBAction
时,不会弹出任何选项。我试着双向连接

import Cocoa

class TestTableController: NSObject, NSTableViewDataSource, NSTableViewDelegate {
@IBOutlet weak var button:NSButton!
}
然后连接它,但结果相同。我能够从
AppDelegate
文件成功连接

以下是她的一些截图:


您需要添加一个NSObject(或您喜欢的任何对象),然后选择它作为自定义类:


然后你应该可以将它连接到你的按钮。

它工作了,但是为什么我不能通过按住ctrl键并拖动到文件本身来建立连接呢。现在,当我尝试从AppDelegate实例化这个类并调用一个隐藏按钮的函数时,我得到了一个错误:在展开可选值时意外地发现了nil,错误很明显,但为什么是nil。我怎么能使用这个按钮。我没有设计Xcode,所以问问苹果为什么ctrl+drag不起作用。“无”警告可能是因为您仍然与某个已不存在或未正确连接的对象有IB连接。感谢您的回答,如果我的问题冒犯了您,请道歉。@jyt:不客气!而且根本没有冒犯。还有其他方法可以将类与IB元素连接起来(例如通过编程等),不过当鼠标拖动连接时,对象仍然需要能够以某种方式与其类关联。。。