我在窗户里有一块空地。我使用它来存储与核心数据对象相关的标记。现在我已经将它设置为可以向对象添加标记,但不能删除它们。我需要NSTKEnfield中的委托方法,它可以让我知道当用户把焦点移到NSTKEnfield的时候。由于nstokenfield是nstextfield的一个子类,我想我可以使用它的委托方法。我认为它有两个可能有用:

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

我将控制器类设置为NSTKEnfield的委托,并将这两种方法都放到控制器类中。我将一个基本的nslog放入其中,当我与nstokenfield交互时,两者都不会被触发。我猜这和nsnotification有关。如何激活这些方法?

最佳答案

NSTokenField调用controlTextDidChange:controlTextDidEndEditing:通知;更改上面的两个方法,将其实现为:

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

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

关于objective-c - 使用NSNotification委托(delegate)NSTextField的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/852038/

10-08 21:25