如何设置第一响应者?

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

如何正确地将 UITextField 设为第一响应者? (尝试了3种方法)

在警报中选择选项时,如何防止我的文本字段成为第一响应者?

未正确设置第一响应者

访问 MFMessageComposeViewController 的第一响应者