3

在我正在构建的项目中,我希望在将一些文本粘贴到特定文本字段时调用一个方法。我似乎无法让它工作,但这是我尝试过的

我将一个自定义类(基于 NSObject)作为我的文本字段的委托,然后给它一个方法:textDidChange:

class textFieldDelegate(NSObject):
    def textDidChange_(self, notification):
        NSLog("textdidchange")

然后我在接口生成器中实例化了这个类的一个对象,并将其设置为 NSTextField 的委托。然而,这似乎并没有做任何事情。但是,当我从http://www.programmish.com/?p=30构建示例代码时,一切似乎都运行良好。如何实现此委托代码以使其真正起作用?

4

1 回答 1

3

这对您不起作用的原因是它textDidChange_不是委托方法。这是NSTextField发布更改通知的方法。如果您查看 文档textDidChange,您会看到它提到了委托方法的实际名称:

此方法导致接收者的委托接收 controlTextDidChange: 消息。有关文本委托方法的更多信息,请参阅 NSControl 类规范。

委托方法实际上被调用controlTextDidChange_并在NSTextField超类上声明NSControl

将您的委托方法更改为:

def controlTextDidChange_(self, notification):
    NSLog("textdidchange")

它应该适合你。

于 2009-06-01T18:24:44.640 回答