Xcode6: 使用Objective-C实现IBDesignable和IBInspectable

79

我有一个Objective-C的UI组件,希望在Xcode 6中使用Interface Builder轻松查看。Swift具有@IBDesignable@IBInspectable声明属性,Objective-C是否也支持?如何使用这些属性?


我们不能在这里讨论,请到苹果开发者论坛提问。 - Mario
12
@Mario 为什么我们不能在这里讨论?你知道今年保密协议已经放宽了,对吧?(参考链接:http://nuzzel.com/sharedstory/06032014/oleb/apple_has_partly_lifted_the_nda_for_beta_releases) - Matt Gibson
2
第三方NDA涵盖的问题从未在StackOverflow上是离题的。请参见http://meta.stackoverflow.com/a/94488/162235。 - Jano
2个回答

85

代码示例:

#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface LOLView : UIView
@property (nonatomic) IBInspectable UIColor *someColor; 
@end

@Satyam 你不能将视图控制器的视图设置为具有这些宏的头文件中的视图吗? - hhanesand
如何将iBOutlet变为IBInspectable?更改后,我不再拥有显示连接的属性圆圈。 - Pini Cheyni
你觉得你真的不想这样做吗?IBInspectable 通常会在 IBOutlet 上设置一个属性。例如:UILabel(IBOutlet)的文本颜色(IBInspectable)。 - Adam Waite
这个代码能在 .m 文件中使用,还是只能在自定义视图的 .h 文件中使用? - Tash Pemhiwa
你是指在.h文件中实现吗?但为什么要在.m文件中实现呢? - Adam Waite
显示剩余2条评论

77
等价物是IB_DESIGNABLE和IBInspectable-请参阅Objective C示例文档
此外,今年的WWDC视频"What's New in Interface Builder"用Swift演示了其示例,但演讲者也顺便提到了Objective C的等价物。

@JoshuaNozzi 已修复。昨天随着iOS 8的发布,苹果将文档从预发布部分移动了。 - Matt Gibson
如果您创建UIButton的子类,则它可能无法正常工作。为什么? - Daniel Gomez Rico

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接