Interface Builder的新IBDesignable属性是否可以与Cocoa中的NSButton和其他控件一起使用?

时间:2014-12-12 22:17:10

标签: xcode cocoa swift interface-builder ibdesignable

我设法让IBDesignable/IBInspectable属性与直接NSView子类一起使用,但不能使用NSButton的直接子类。这让我质疑,实际上Cocoa实现是否仅限于NSView

几乎网络上的每个示例(以及 Apple WWDC 2014 Xcode视频)都使用NSView,然后将自定义视图组件从库拖到画布上(然后更改其类)

是否可以将IBDesignableNSControlNSButton等子类一起使用......?我在网上看到了很多使用UIButton的例子。

如果有可能,那么你应该从库中拖到画布上的是什么?将它作为“自定义视图”是没有意义的。另一方面,没有“自定义控制”。

要清楚,我可以在设计时显示IBInspectable属性;但任何更改似乎都不会在设计时进行渲染。

解决方法是将我想在NSButton内创建的任何自定义NSView换行(通过合成),但这看起来有点像黑客......

2 个答案:

答案 0 :(得分:0)

我开始使用自定义NSButtonNSButtonCell

将库中的按钮拖到画布上并更改其类,并且单元类不会实时渲染。我认为这是因为Interface Builder仍然需要设置很多自定义内容来设置NSButtonCell

对我来说很好用的是将自定义视图从库拖到画布上并设置其类。为此,您需要在NSButtons -initWithCoder:内设置单元格。

我还发现Apple的sample有一个支持图层的自定义Checkbox。

答案 1 :(得分:0)

您需要将NSButton拖到视图上,然后将自定义类设置为特定的NSButton后代。开始使用NSView时,不确定为什么它不起作用。

可以给你一个提示的是NSButton特定属性不属于"属性检查器"。因此,在将控件拖动到视图上时必须进行一些设置。