神秘:keyboardDidShow被称为,但它没有连线

时间:2010-08-01 17:34:53

标签: iphone

当键盘出现时,我的代码可以完美地减少UITextView的大小。问题是,方法的签名是

- (void)keyboardDidShow:(NSNotification*)aNotification 

但是调用代码

//[nc addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];

被注释掉了!我在XCode中使用grep和refactor搜索低和高(看看还有谁可能正在调用该方法),并且没有任何结果。为了以防万一,我检查了笔尖。我曾尝试过清洁目标等,但无济于事。如果我重命名该方法,它不会被调用(但这不会产生错误)。关于这种方法如何/在哪里被“连线”的任何想法

1 个答案:

答案 0 :(得分:1)

事实证明,您在keyboardDidShow:子类中实现了UITextField。但是,UITextField类本身也实现了这个方法,所以既然你已经在你的子类中重写它,你的实现将被调用,而不是 UIKit实现。即使从未在你的代码中调用它, UIKit 也为你做了。

这就解释了为什么调用你的方法,并且重命名方法解决了这个问题。