【问题标题】:IBDesignable controls in a framework框架中的 IBDesignable 控件
【发布时间】:2016-01-23 08:10:57
【问题描述】:

我在 IBDesignable https://developer.apple.com/videos/play/wwdc2014-411/ 上观看了精彩视频,并创建了一个带有控件的框架,供我的主应用程序使用(如有必要,还可以共享)。

我使用 IB 创建了一个自定义“复合”控件,按照这个很棒的教程,http://supereasyapps.com/blog/2014/12/15/create-an-ibdesignable-uiview-subclass-with-code-from-an-xib-file-in-xcode-6

这项技术效果很好,我现在可以将我的可设计控件放在我的故事板上。

问题是我注意到我的“框架”中的所有 IBOutlets 和 IBAction 都出现在故事​​板上的 IB 中。但我想隐藏它们!控件的功能隐藏在框架内,IBOutlets 和 IBActions 已被创建以促进它们在该框架内的操作,并通过委托或其他方式处理对外部世界的通知。

这项技术非常引人注目,因为我可以使用它来创建一个可重用的“复合”控件库,但它可以对库的实现者隐藏某些 IBOutlets 和 IBAction 以确保“安全”元素

这可以吗? 是否有任何标志可以隐藏框架内的 IBOutlet/IBAction 元素?

【问题讨论】:

    标签: ios objective-c xcode ibdesignable


    【解决方案1】:

    当您谈到安全性时,如果您将 @IBActions、@IBOutlets 等声明为内部,那么它们对您的应用程序模块来说是私有的。

    就框架而言,它们由自己的模块组成(检查构建设置、模块名称)并确保启用“定义模块”。

    这可确保您的模块对于初学者“启用”,即您的框架(或应用程序,或定义了自己的模块的包)中的所有内容都有自己的环境。

    从那里开始,确保您在声明时使用了正确的隐私:

    这里更详细地解释了访问控制: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html

    【讨论】:

    • 感谢您提供有用的信息。我应该说我正在用 Objective-C 编写框架。这可能会对可访问性和可见性产生影响。我想知道有没有办法?
    猜你喜欢
    • 1970-01-01
    • 2015-07-08
    • 2017-12-07
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    相关资源
    最近更新 更多