我设法让IBDesignable/IBInspectable
属性与直接的NSView
子类一起使用,但不能使用NSButton
的直接子类。这让我质疑,实际上Cocoa实现是否仅限于NSView
。
几乎网络上的每个示例(以及 Apple WWDC 2014 Xcode视频)都使用NSView
,然后将自定义视图组件从库拖到画布上(然后更改其类)
是否可以将IBDesignable
与NSControl
和NSButton
等子类一起使用......?我在网上看到了很多使用UIButton
的例子。
如果有可能,那么你应该从库中拖到画布上的是什么?将它作为“自定义视图”是没有意义的。另一方面,没有“自定义控制”。
要清楚,我可以在设计时显示IBInspectable属性;但任何更改似乎都不会在设计时进行渲染。
解决方法是将我想在NSButton
内创建的任何自定义NSView
换行(通过合成),但这看起来有点像黑客......
答案 0 :(得分:0)
我开始使用自定义NSButton
和NSButtonCell
。
将库中的按钮拖到画布上并更改其类,并且单元类不会实时渲染。我认为这是因为Interface Builder仍然需要设置很多自定义内容来设置NSButtonCell
。
对我来说很好用的是将自定义视图从库拖到画布上并设置其类。为此,您需要在NSButtons -initWithCoder:
内设置单元格。
我还发现Apple的sample有一个支持图层的自定义Checkbox。
答案 1 :(得分:0)
您需要将NSButton
拖到视图上,然后将自定义类设置为特定的NSButton
后代。开始使用NSView时,不确定为什么它不起作用。
可以给你一个提示的是NSButton
特定属性不属于"属性检查器"。因此,在将控件拖动到视图上时必须进行一些设置。