使用NSNotification委派NSTextField的方法

时间:2009-05-12 10:02:11

标签: objective-c cocoa macos delegates

我在一个窗口中有一个NSTokenField。我用它来存储与Core Data对象相关的标签。现在我设置它,以便我可以添加标签到对象,但我不能删除它们。我需要在NSTokenField上使用委托方法,该方法可以让我知道用户何时将焦点移出NSTokenField。由于NSTokenField是NSTextField的子类,我想我可以使用它的委托方法。它有两个我觉得有用的东西:

- (void)textDidChange:(NSNotification *)aNotification
- (void)textDidEndEditing:(NSNotification *)aNotification

我将我的控制器类设置为我的NSTokenField的委托,并将这两个方法放入我的控制器类中。我将基本的NSLog放入其中,当我与NSTokenField交互时,都没有触发。我猜它与NSNotification有关。如何激活这些方法?

1 个答案:

答案 0 :(得分:8)

NSTokenField会调用controlTextDidChange:controlTextDidEndEditing:次通知;改变上面的两种方法,将它们实现为:

- (void)controlTextDidChange:(NSNotification*)aNotification
{
    //Code here..
}

- (void)controlTextDidEndEditing:(NSNotification *)aNotification
{
    //Code here..
}