当键盘出现时,我的代码可以完美地减少UITextView
的大小。问题是,方法的签名是
- (void)keyboardDidShow:(NSNotification*)aNotification
但是调用代码
//[nc addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
被注释掉了!我在XCode中使用grep和refactor搜索低和高(看看还有谁可能正在调用该方法),并且没有任何结果。为了以防万一,我检查了笔尖。我曾尝试过清洁目标等,但无济于事。如果我重命名该方法,它不会被调用(但这不会产生错误)。关于这种方法如何/在哪里被“连线”的任何想法
答案 0 :(得分:1)
事实证明,您在keyboardDidShow:
子类中实现了UITextField
。但是,UITextField
类本身也实现了这个方法,所以既然你已经在你的子类中重写它,你的实现将被调用,而不是 UIKit实现。即使你从未在你的代码中调用它, UIKit 也为你做了。
这就解释了为什么调用你的方法,并且重命名方法解决了这个问题。