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 作为子控件点击输入文本,然后退出文本的方式
textView:shouldChangeTextInRange:replacementText: 返回 NO,但自动更正忽略?