繁体   English   中英

如何在Interface Builder中将值绑定到NSWindow的属性?

[英]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的自定义类。 为此,请选择左侧的窗口,然后单击右侧的蓝色突出显示图标并键入您的班级名称: Xcode界面构建器

完成后,您必须为NSTextField创建一个属性,方法是选择文本字段并单击顶部的中间图标(具有弓形和按钮的图标)。 选择右侧突出显示的蓝色图标(带箭头的圆圈)。 现在按“新参考插座”行上的圆圈,然后将鼠标拖动到IMWindow的头文件中。 Xcode界面构建器

而已! 您的NSTextField现在绑定到IMWindow类。

但请记住:您应该考虑使用NSWindowController代替!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM