python-在PyObjc和Cocoa中实现NSText委托方法
作者:互联网
在我正在构建的项目中,当我将一些文本粘贴到特定的文本字段中时,我想有一个称为的方法.我似乎无法使它正常工作,但这就是我尝试过的
我将一个自定义类(基于NSObject)隐含为我的文本字段的委托,然后为其提供了方法:textDidChange:
class textFieldDelegate(NSObject):
def textDidChange_(self, notification):
NSLog("textdidchange")
然后,我在接口生成器中实例化了此类的对象,并将其设置为NSTextField的委托.但是,这似乎没有任何作用.但是,当我从http://www.programmish.com/?p=30构建示例代码时,一切似乎都可以正常工作.如何隐含此委托代码,使其真正起作用?
解决方法:
这对您不起作用的原因是textDidChange_不是委托方法.这是NSTextField上的一种方法,用于发布更改通知.如果您浏览了textDidChange的文档,将会看到它提到了委托方法的实际名称:
This method causes the receiver’s delegate to receive a controlTextDidChange: message. See the NSControl class specification for more information on the text delegate method.
该委托方法实际上称为controlTextDidChange_,并在NSTextField超类NSControl上声明.
将您的委托方法更改为:
def controlTextDidChange_(self, notification):
NSLog("textdidchange")
它应该为您工作.
标签:pyobjc,cocoa,python 来源: https://codeday.me/bug/20191210/2102937.html