我尝试使用界面生成器绑定(bind) Cocoa 应用程序的 CGSize 属性的宽度值。
我将“模型关键路径”设置为“windowSize”(我的 CGSize 值),并在“值转换器字段”中尝试了不同的值,例如“宽度”或“%{width}@”,但是当我运行应用程序时,它崩溃并出现此错误“找不到名称为 {width}@ 的值转换器”
我应该使用哪种变压器?
最佳答案
您需要在您的某些对象中创建自定义访问器,例如窗口 Controller (必须是 NSWindowController 的自定义子类)并绑定(bind)到这些对象。
在每个访问器中,获取窗口的frame
或contentSize
,然后检索或更改其相关成员。然后,在 setter 中,将调整后的框架或尺寸设置回原来的位置;在 getter 中,您返回提取的数字。
直接绑定(bind)到 CGSize 值的宽度
或高度
,或者原点
或尺寸(的任何部分)
的矩形,由于 CodaFi 描述的原因而不起作用:您只能绑定(bind)到对象的属性,并且大小和矩形(和点)不是对象。
虽然两者使用相同的“点语法”(foo.bar
),但访问结构体成员(例如 width
NSSize 或 CGSize)并访问对象的属性(例如 NSWindow 的 contentSize
)。您可以绑定(bind)到对象的属性;您不能绑定(bind)到结构的成员。
关于objective-c - 如何在cocoa(Interface Builder)中绑定(bind)CGSize.width?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20568254/