objective-c - 如何在cocoa(Interface Builder)中绑定(bind)CGSize.width?

标签 objective-c cocoa binding interface-builder

我尝试使用界面生成器绑定(bind) Cocoa 应用程序的 CGSize 属性的宽度值。

我将“模型关键路径”设置为“windowSize”(我的 CGSize 值),并在“值转换器字段”中尝试了不同的值,例如“宽度”或“%{width}@”,但是当我运行应用程序时,它崩溃并出现此错误“找不到名称为 {width}@ 的值转换器”

我应该使用哪种变压器?

最佳答案

您需要在您的某些对象中创建自定义访问器,例如窗口 Controller (必须是 NSWindowController 的自定义子类)并绑定(bind)到这些对象。

在每个访问器中,获取窗口的framecontentSize,然后检索或更改其相关成员。然后,在 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/

相关文章:

cocoa - 检查 NSTextView 是否已被编辑

cocoa - 在 Interface Builder 中保留窗口位置

iphone - 如何实现 uislider 以便它可以用作 AVQueueplayer 中的洗涤器

objective-c - 为 ViewController 同步绘制矩形

ios - 格式化 UIImagePickerController 的 "Cancel"和 "Choose"按钮的文本

Java的final方法使用静态绑定(bind),但JVM在编译时使用 "invokevirtual"指令

vb.net - 如何获取wpf按钮的父级

xaml - 如何从基类中捕获被点击的项目(位于模板中)的事件?

ios - 如何在两个方向上延伸使用 CGMutablePathRef 绘制的线?

ios - 即使 focuspointofinterest 在 iPhone6 和 iPhone6+ 上发生变化,焦点也不会改变