【问题标题】:Cursor is blinking in UITextField but keyboard doesn't appear光标在 UITextField 中闪烁,但没有出现键盘
【发布时间】:2012-12-07 06:41:39
【问题描述】:

我得到了一个带有文本字段的简单详细视图。 详细的viewController我写了这段代码:

- (void) viewDidAppear:(BOOL)animated{
    [self.textField becomeFirstResponder];
    NSLog(@"is textField 1st responder %d", [self.textField isFirstResponder]);
}

当我将详细信息推送到导航控制器时,我在日志中看到“is textField 1st responder 0”。 键盘没有出现。 但是文本字段有闪烁的光标。

这一刻发生了什么?为什么键盘不显示?我确实尝试在我的 AppDelegate 中捕捉到通知“KeyboardDidShown”,但没有捕捉到任何东西:

这是我的主视图设计:

【问题讨论】:

  • 您确定self.textField 不是nil 并且在您致电becomeFirstResponder 时已经出现在您的视野中吗?
  • 我刚刚尝试将此代码移动到 viewDidLoad 方法 - 没有任何变化。
  • 这不能回答我的问题。 :) 你在哪里初始化你的UITextField,你在哪里把它添加到你的UIView
  • 你在哪里设置 UITextFieldDelegate?
  • Andreas,我在 IB 中初始化了 textField。

标签: ios xcode keyboard uitextfield becomefirstresponder


【解决方案1】:

拨打reloadInputViews 有帮助吗?

【讨论】:

  • "如果当前对象不是第一响应者,则此方法无效。"问题是 - 我找不到我的第一响应者在哪里。我用这个方法检查了所有视图- (void) viewDidAppear:(BOOL)animated{ NSLog(@"is view 1st responder %d", [self isFirstResponder]); }
  • 我尝试将 reloadInputViews 发送到 viewDidAppear 中的 textField 但没有任何反应
  • 你能把项目发过来吗?可能是显示问题的示例。
  • 现在解决了... :) 问题的原因是您有两个不同的 UIWindow 对象。一 - 在您的应用程序委托中 二 - 在您的视图控制器 xib 中。这里应该是 UIView 而不是 uiwindow。并在其 viewDidLoad 添加 TabBarview。您可以在以下位置下载已解决的项目:rghost.net/42397367
猜你喜欢
  • 1970-01-01
  • 2011-10-30
  • 2011-04-05
  • 2017-01-23
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多