2012-04-04 58 views
0

我有以下的委托方法,用于监听,当文本的变化可编辑字段:可可 - controlTextDidEndEditing问题

- (空)controlTextDidEndEditing:(NSNotification *)aNotification {

说,我有两个NSTextFields声明,我怎样才能找出哪个是生成通知的NSTextField?我想在一个文本字段的文本完成编辑时执行一些代码,而另一个文本字段的代码完成编辑时执行其他代码。

换句话说,我如何获得发出通知的文本字段的名称?

谢谢!

回答

1

[aNotification object]是发布通知的NSControl(或NSControl子类)对象。

+0

谢谢,但这给出,例如: 。 有没有一种方法可以获得我在IBOutlet decleration中给出的实际名称? – Kevin 2012-04-04 09:50:15

+0

好解决的,不完全的名字,但我想这是不是真的有可能.. 我所做的: \t如果([aNotification对象] == TF) 与TF是我在IBOutlet中宣布的NSTextField。如果返回true,那么我知道它是生成通知的tf文本字段。谢谢您的帮助! – Kevin 2012-04-04 09:55:46

0

您可以使用标签并获取对象的标签字段,但首先必须强制将对象从Any向下转换为NSTextField,以便可以访问标签属性(“any”的对象不具有“标签”属性),像这样:

let object = aNotification.object as! NSTextField 

,那么你可以检查标签:

if object.tag == 99 { do something } 

这就是我在一些我现在工作的代码的解决这一问题。