如何设置第一响应者?

amo*_*mok 18 cocoa-touch objective-c iphone-sdk-3.0

我有一个通过IB构建的视图,上面有文本视图和按钮.当视图显示时,我想要显示键盘.

我试图在didViewLoad中设置第一个响应者但是没有用.

我有一个连接到textView和相关访问器的IBOutlet.

jle*_*ehr 47

看起来你可能不小心拼错了方法名称didViewLoad而不是viewDidLoad.你需要的所有东西(假设你的IBOutlet在IB中连接)如下:

[textView becomeFirstResponder];
Run Code Online (Sandbox Code Playgroud)

  • @voidref你是正确的,如果问题是关于可可,但它不是,这是关于Cocoa触摸.`UIWindow`中没有`makeFirstResponder:`方法. (6认同)
  • 那应该是[textView.window makeFirstResponder:textView]; (5认同)

Dan*_*ell 17

我知道这被标记为cocoa-touch,但是在Google中排名很高,我在OS X上使用-becomeFirstResponder遇到了麻烦; 它没有做任何事.从NSResponder文档中,

使用NSWindow makeFirstResponder:方法而不是此方法将对象作为第一响应者.永远不要直接调用此方法.

所以在OS X上使用,

[[myView window] makeFirstResponder:myView];
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用 IB,则“NSWindow”有一个“initialFirstResponder”插座,允许您连接一个视图,该视图将成为窗口首次在屏幕上绘制时的第一个响应者。 (2认同)