UITextField 辞职第一响应者 iOS4

Posted

技术标签:

【中文标题】UITextField 辞职第一响应者 iOS4【英文标题】:UITextField resign first responder iOS4 【发布时间】:2010-07-06 12:15:33 【问题描述】:

我有一段简单的代码可以在除 ios4 之外的所有系统上运行。 这是关于辞去 UITextField 的第一响应者的职务。文本字段已全部连接,这是委托的代码:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
    [opis resignFirstResponder];
    return YES;

我几乎尝试了所有可能的方法,也尝试返回 NO,但它不起作用。最奇怪的是,它确实可以在 4.0 之前的每个 iphone 操作系统和 iPad 上运行(在模拟器和实际设备上测试) 有人可以帮忙吗?

【问题讨论】:

为什么不使用 [textField resignFirstResponder];?也许您的 opis 变量设置不正确。 也试过了 - 没用。 这也是我建议尝试使用 [textField resignFirstResponder];或检查文本字段是否已正确分配,并且与您尝试辞职的文本字段相同。快乐编码... 所有这些都已正确分配并与插座连接。也试过 [textField resignFirstResponder] 但它不起作用。 你试过在 textFieldShouldReturn 方法上设置断点吗?这将确定问题是否在于委托方法的调用或文本字段拒绝放弃第一响应者状态。 【参考方案1】:

这适用于我在 iOS4 中的 3GS。您确定您正确设置了UITextField 委托吗?

- (BOOL) textFieldShouldReturn:(UITextField*)textField 
[textField resignFirstResponder];
return YES;

【讨论】:

不,我的意思是您是否将实现 UITextFieldDelegate 协议的类设置为 UiTextField 出口的委托。 在你的回答中你已经声明了 TextVIEWDelegate。 我见过这种情况的唯一一次是 UITextField 的委托属性未设置为文件的所有者。你为什么打电话给[opis resignFirstResponder]?你的意思是if (textField == opis) [textField resignFirstResponder]【参考方案2】:

不确定这是否与您的情况相似,但我在UIAlertView 中有一个UITextField,并且在resignFirstResponder 上遇到了类似的键盘未关闭问题。

这是我的解决方案:

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
    [textField resignFirstResponder];
    [alert resignFirstResponder];
    return YES;

textfield 辞职后,警报似乎变成了firstResponder

【讨论】:

【参考方案3】:

这是一个非常经典的问题。我假设您正在将委托设置为您的 textField 但问题是在哪里?您是否在控制器的 initWithNib... 初始化程序中进行设置?那是错误的。因为那时您的文本字段尚未初始化。它在 viewDidLoad 方法中初始化,所以你应该在那里设置你的委托,它应该可以工作。

【讨论】:

以上是关于UITextField 辞职第一响应者 iOS4的主要内容,如果未能解决你的问题,请参考以下文章

UITextField 辞职第一响应者 iOS4

使用 UIToolbar/UITextField 辞职第一响应者问题

UITextField 不辞职第一响应者?

辞职第一响应者 UITextfield

UITextField辞职第一响应者后如何更改UIScrollView contentSize

iPhone-在 UITextField 上辞职第一响应者后,无法重新聚焦