[英]Bind value to NSUserDefaults with Suite in Interface Builder
[英]How to bind value to property of NSWindow in Interface Builder?
我将NSWindow
(名为IMWindow
)分类为我自己的财产。 现在我想将NSTextField
的值绑定到IMWindow
一个属性。 我知道NSUserDefaults
控制器或应用NSUserDefaults
是可能的。 但它没有为NSWindow
提供选项。
我想看看我是否可以将值绑定到任意对象。
截图:
码:
@interface IMMainWindow ()
@property (nonatomic, strong) NSString *line1Text;
@end
在Interface Builder for OS X中很难找到任何高级材料。: - /
Cocoa使用MVC(模型 - 视图 - 控制器)模式。 您应该将文本字段的值绑定到控制器,而不是窗口本身。 不要子类化NSWindow
- 使用XIB创建NSWindowController
子类(因此窗口控制器将成为File的所有者),然后将line1Text
属性添加到NSWindowController
子类,并将文本字段绑定到XIB中的File的Owner对象。
我同意indragie的回答 。 也就是说,有可能做到,你在问什么。
首先,您必须设置IMWindow.xib
的自定义类。 为此,请选择左侧的窗口,然后单击右侧的蓝色突出显示图标并键入您的班级名称:
完成后,您必须为NSTextField
创建一个属性,方法是选择文本字段并单击顶部的中间图标(具有弓形和按钮的图标)。 选择右侧突出显示的蓝色图标(带箭头的圆圈)。 现在按“新参考插座”行上的圆圈,然后将鼠标拖动到IMWindow
的头文件中。
而已! 您的NSTextField
现在绑定到IMWindow
类。
但请记住:您应该考虑使用NSWindowController
代替!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.