我正在尝试按照Apple的“用于iOS的文本,网页和编辑编程指南”中的步骤进行移动位于键盘下的内容(PDF打印输出的第36页),我在代码中不断收到错误,我直接从页面复制(清单4-1),其中包括keyboardDidShow下的这个代码段:():
if (!CGRectContainsPoint(aRect, activeField.frame.origin)){
CGPoint scrollPoint = CGPointMake(0.0, activeField.frame.origin.y-kbSize.height);
[scrollView setContentOffset:scrollPoint animated:YES];
}
然后列出4-2:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
activeField = textField;
}
(我确实有通知并经过测试可以正常工作。)
问题是Xcode将术语activeField标记为未声明的标识符。显然,这意味着我需要在某个地方声明,但是尽可能多地挖掘,我无法弄清楚哪里来声明它和如何来声明它。< / p>
我在其他地方已经看到过人们使用过相同的代码并且没有问题。为什么是我???
对于Xcode老兵来说,这可能没什么大不了的,所以我希望你能教育我。
谢谢!
答案 0 :(得分:1)
只需在主视图控制器中声明变量:
@implementation MainViewController {
UITextField *activeField;
}