iOS 键盘和 textview 错误 - “使用未声明的变量”

Posted

技术标签:

【中文标题】iOS 键盘和 textview 错误 - “使用未声明的变量”【英文标题】:iOS keyboard and textview error - "use of undeclared variable" 【发布时间】:2012-08-02 20:46:54 【问题描述】:

我正在尝试按照 Apple 的“ios 文本、Web 和编辑编程指南”中的步骤操作移动位于键盘下方的内容(PDF 打印输出的第 36 页),并且我在直接从页面(清单 4-1)复制的代码中不断收到错误,其中包括 keyboardDidShow:() 下的这个 sn-p:

    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 的老手来说,这可能没什么大不了的,所以我希望你们能教育我。

谢谢!

【问题讨论】:

UITextField *activeField.h 文件中?如果您不使用代码创建它,则还需要将其设为 IBOutlet,并将其连接到 Interface Builder 中的文本字段。 好吧,这消除了错误,但它仍然无法完成将屏幕向上滚动到键盘之外的工作。但我至少可以继续前进。我实际上以为我已经尝试过了,但也许我打错了。一切都开始为我一起运行。但我确实记得设置一个出口。谢谢! 更新:它正在工作!我只需要熨平一些皱纹,但除此之外,我的状态很好。谢谢! 嘿比尔,我遇到了和你一样的问题...愿意分享你是如何解决的吗? 我 59 岁的大脑自 8 月以来经历了很多,我不记得我到底做了什么。看起来 wquist 的回答总体上解决了这个问题,但我提到的皱纹只是对一些数字的调整,以使其滚动到正确的位置。我的代码显示,在上面的段(第一个框)中,我注释掉了“if(!CGRectContainsPoint ...”并且只是使“CGPoint scrollPoint =”段无条件。写信给我 wanorman2000@yahoo.com 我会发送你的整个事情。 【参考方案1】:

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

@implementation MainViewController 
    UITextField *activeField;

【讨论】:

以上是关于iOS 键盘和 textview 错误 - “使用未声明的变量”的主要内容,如果未能解决你的问题,请参考以下文章

iOS 开发中中 textView 作为子控件点击输入文本,然后退出文本的方式

iOS系列 基础篇 08 文本与键盘

textView:shouldChangeTextInRange:replacementText: 返回 NO,但自动更正忽略?

在 ios 键盘上方显示建议工具栏

iOS tableview上textView在编辑状态时,tableview自动上移的功能

iOS开发之手势识别