1

我正在尝试按照 Apple 的“iOS 的文本、Web 和编辑编程指南”中的步骤来移动位于键盘下的内容(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 标记为未声明的标识符。显然,这意味着我需要在某个地方声明它,但是尽管我已经做了很多挖掘,但我无法弄清楚在哪里声明它以及如何声明它。

我在其他地方看到人们使用相同的代码并且没有问题。为什么是我???

对于你们 Xcode 的老手来说,这可能没什么大不了的,所以我希望你们能教育我。

谢谢!

4

1 回答 1

1

只需在主视图控制器中声明变量:

@implementation MainViewController {
    UITextField *activeField;
}
于 2014-11-07T22:51:56.920 回答