如何知道哪个NSTextField已被修改其值

时间:2014-06-11 00:27:43

标签: objective-c macos nstextfield

我在我的NSWindowController上声明了几个NSTextFields,它们都作为委托文件的所有者,并对此方法做出了很好的反应:

-(void)controlTextDidEndEditing:(NSNotification *)obj{

}

但我也想知道我使用下一个代码的控件的值

-(void)controlTextDidEndEditing:(NSNotification *)obj{
    if ((NSTextField *)obj == self.nombreCuentaActivoTextField) {
        NSLog(@"you just edited nombreCuentaActivoTextField");
    }
}

但它不起作用,怎么做

1 个答案:

答案 0 :(得分:2)

objNSNotification。你不能把它投射到NSTextField,并假设你已经取得了一些有用的东西。

发布该通知并因此触发该委托方法的控件是"对象"通知。您可以使用[obj object]来获取它。因此,您可以实现这样的方法(为了清楚起见,我已将obj重命名为notification):

-(void)controlTextDidEndEditing:(NSNotification *)notification{
    if ([notification object] == self.nombreCuentaActivoTextField) {
        NSLog(@"you just edited nombreCuentaActivoTextField");
    }
}