我刚刚将我的mac升级到10.10,将Xcode升级到6.1,
发现了一个关于故事板的奇怪的事情,
我的情况是使用swift项目,无法再从故事板连接自定义协议委托。
老版Xcode附带的旧版连接很好,但我再也无法连接任何新的代理了。即使我删除连接后也无法重新连接旧的。
有没有人出现这种情况?
==============================更新============= =================
查看课程
@objc public protocol VideoViewResizeDelegate {
func shouldVideoViewResetLayout(videoView: GvVideoView) -> Bool;
}
@IBOutlet var resizeDelegate: VideoViewResizeDelegate?;
ViewController类
@IBDesignable public class ViewController: UIViewController, VideoViewResizeDelegate {
...
}
答案 0 :(得分:13)
Interface Builder
Interface Builder不支持连接到Swift中的插座 当插座的类型是协议时文件。声明插座的类型 作为AnyObject或NSObject,使用将对象连接到插座 Interface Builder,然后将插座的类型更改回协议。 (17023935)
太糟糕了......
答案 1 :(得分:6)
2017年......
使用swift 3,这将起作用:
open class YourClass: UIView {
#if TARGET_INTERFACE_BUILDER
@IBOutlet open weak var delegate: AnyObject?
#else
open weak var delegate: YourClassDelegate?
#endif
}
前提条件是:
YourClassDelegate必须使用 @objc
进行修饰例如:
@objc public protocol MyDelegate: class {
func myFunc()
func myFunc2()
}
这应该在Xcode 9中修复