如何设置第一响应者?
Posted
技术标签:
【中文标题】如何设置第一响应者?【英文标题】:How do I set the firstresponder? 【发布时间】:2009-09-14 16:56:04 【问题描述】:我有一个通过 IB 构建的视图,上面有一个文本视图和按钮。当视图显示时,我希望键盘已经显示。
我尝试在 didViewLoad 中设置第一响应者,但没有成功。
我确实有一个连接到 textView 和相关访问器的 IBOutlet。
【问题讨论】:
看看这个链接:juliuspaintings.co.uk/cgi-bin/paint_css/animatedPaint/…这很可能有你的答案。 【参考方案1】:看起来您可能不小心拼错了方法名称 didViewLoad 而不是 viewDidLoad。您所需要的一切(假设您的 IBOutlet 已在 IB 中连接)如下:
[textView becomeFirstResponder];
【讨论】:
应该是[textView.window makeFirstResponder:textView]; @voidref 如果问题是关于 Cocoa 的,那你是对的,但事实并非如此,而是关于 Cocoa touch。UIWindow
中没有 makeFirstResponder:
方法。【参考方案2】:
我知道它被标记为 cocoa-touch,但它在 Google 中的排名很高,我在 OS X 上使用 -becomeFirstResponder 时遇到了麻烦;它什么也没做。来自NSResponder 文档,
使用 NSWindow
makeFirstResponder:
方法,而不是这个方法,使对象成为第一响应者。切勿直接调用此方法。
所以在 OS X 上使用,
[[myView window] makeFirstResponder:myView];
【讨论】:
如果您使用的是 IB,NSWindow
有一个 initialFirstResponder
插座,允许您连接一个视图,该视图将是第一次在屏幕上绘制窗口时的第一响应者。【参考方案3】:
对于斯威夫特
textView.becomeFirstResponder()
【讨论】:
以上是关于如何设置第一响应者?的主要内容,如果未能解决你的问题,请参考以下文章
如何解决此警告:设置集合视图的第一响应者视图但我们不知道其类型(单元格/页眉/页脚)?
UITextField辞职第一响应者后如何更改UIScrollView contentSize