Pat*_*Lin 3 interface-builder swift xcode6 ios8 xcode6.1
我刚刚将我的mac升级到10.10,将Xcode升级到6.1,
发现一个关于故事板的奇怪的事情,
我的情况是使用swift项目,无法再从storyboard连接自定义协议委托.
老版Xcode附带的旧连接很好,但我再也无法连接任何新的代理了.
一旦我移除了连接,我甚至无法重新连接旧的.
有没有人出现这种情况?
==============================更新=================== ===========
查看课程
@objc public protocol VideoViewResizeDelegate {
func shouldVideoViewResetLayout(videoView: GvVideoView) -> Bool;
}
@IBOutlet var resizeDelegate: VideoViewResizeDelegate?;
Run Code Online (Sandbox Code Playgroud)
ViewController类
@IBDesignable public class ViewController: UIViewController, VideoViewResizeDelegate {
...
}
Run Code Online (Sandbox Code Playgroud)
Pat*_*Lin 13
Interface Builder
当插座的类型是协议时,Interface Builder不支持连接到Swift文件中的插座.将插座的类型声明为AnyObject或NSObject,使用Interface Builder将对象连接到插座,然后将插座的类型更改回协议.(17023935)
这很糟糕......
这是2017年....
使用swift 3,这将工作:
open class YourClass: UIView {
#if TARGET_INTERFACE_BUILDER
@IBOutlet open weak var delegate: AnyObject?
#else
open weak var delegate: YourClassDelegate?
#endif
}
Run Code Online (Sandbox Code Playgroud)
一个先决条件是:
YourClassDelegate必须用@objc修饰
例如:
@objc public protocol MyDelegate: class {
func myFunc()
func myFunc2()
}
Run Code Online (Sandbox Code Playgroud)
这应该在Xcode 9中修复
| 归档时间: |
|
| 查看次数: |
3594 次 |
| 最近记录: |