我在我的NSWindowController上声明了几个NSTextFields,它们都作为委托文件的所有者,并对此方法做出了很好的反应:
-(void)controlTextDidEndEditing:(NSNotification *)obj{
}
但我也想知道我使用下一个代码的控件的值
-(void)controlTextDidEndEditing:(NSNotification *)obj{
if ((NSTextField *)obj == self.nombreCuentaActivoTextField) {
NSLog(@"you just edited nombreCuentaActivoTextField");
}
}
但它不起作用,怎么做
答案 0 :(得分:2)
obj
是NSNotification
。你不能把它投射到NSTextField
,并假设你已经取得了一些有用的东西。
发布该通知并因此触发该委托方法的控件是"对象"通知。您可以使用[obj object]
来获取它。因此,您可以实现这样的方法(为了清楚起见,我已将obj
重命名为notification
):
-(void)controlTextDidEndEditing:(NSNotification *)notification{
if ([notification object] == self.nombreCuentaActivoTextField) {
NSLog(@"you just edited nombreCuentaActivoTextField");
}
}