首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSNotification/Binding?

NSNotification/Binding?
EN

Stack Overflow用户
提问于 2009-06-04 16:22:38
回答 2查看 920关注 0票数 2

我正在翻阅希尔格拉斯和科昌的书。做我自己的实验来进一步学习我只是想创建一个有4个文本字段的可可界面,3个接受数字,第4个显示其他3个的总和。我可以使用一个按钮来做计算,但我想做的是让它在3个输入中的任何一个发生变化时自动更新。

我在书上和网上都找过关于这一点的课程,但找不到,所以要么它真的很简单,我遗漏了什么,要么就不是那么简单。这样做的传统方法似乎是使用NSNotifactions,但也可以使用绑定?

可可的标准做法是什么?有没有人知道的教程?

干杯,摩根

EN

回答 2

Stack Overflow用户

发布于 2009-06-04 17:09:06

第7章:键值编码;希尔格拉斯的"Cocoa Programming for Mac“或Apple documentation on Key-Value Coding的键值观察可以帮助您完成此任务。

下面是我的样例xcode项目:http://dl.getdropbox.com/u/344540/stackoverflow/AutoAdd.zip。您可以通过使用界面构建器中NSTextFields的检查器的"Bindings“选项卡来控制更新的方式。在该选项卡中还有其他的宝石。

票数 3
EN

Stack Overflow用户

发布于 2009-06-05 02:10:38

因此,您可以在三个文本字段中注册该通知,然后更新计算字段。

我更进一步,创建了一个名为ActionOnChangeTextField的NSTextField子类,每当文本发生变化时,它都会自动调用它的操作。因此,只需将三个文本字段的类设置为ActionOnChangeTextField,并将选择器连接到更新计算方法。

代码语言:javascript
复制
@interface ActionOnChangeTextField : NSTextField {

}

@end

@implementation ActionOnChangeTextField

- (void) doTextChangedAction:(NSNotification*)notification;
{
    [[self target] performSelector:[self action]];
}

- (void) awakeFromNib;
{
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(doTextChangedAction:)
                                                 name:NSControlTextDidChangeNotification
                                               object:self];
}

- (void) dealloc;
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    [super dealloc];
}

@end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/951618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档