【问题标题】:UITextField - resignFirstResponder QueryUITextField - resignFirstResponder 查询
【发布时间】:2011-08-02 08:53:09
【问题描述】:

我有一个应用程序,其中有几个 UITextField 允许我的用户输入他们的年龄和另一个数值。理想情况下,我希望键盘在编辑 TextField 时调出数字小键盘。目前我将其设置为数字和标点符号只是为了使用“完成”按钮来关闭键盘,因为数字键盘没有完成按钮。

在尝试使用数字键盘时,我尝试通过点击主视图的背景将其设置为关闭。

-(IBAction)backgroundTapped:(id)sender;

我在头文件中创建了上述操作。

-(IBAction)backgroundTapped:(id)sender {
    [ageEntry resignFirstResponder];
}

我在我的实现文件中扩展了上述方法,告诉ageEntry TextField resignFirstResponder。我还将主视图更改为 UIControl 类,并通过 Interface Builder 将 buttonTapped 操作连接到相关警报。然而,当我触摸背景时,什么也没有发生。

有什么想法吗?

【问题讨论】:

  • 您想在数字键盘中添加完成按钮吗?
  • 理想情况下,id 就像数字键盘中的完成按钮一样,但这不在选项中。我希望能够点击我的背景来关闭键盘

标签: iphone objective-c uitextfield resignfirstresponder


【解决方案1】:

只需使用该方法检测 viewController 视图中的触摸

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [urAgeField resignFirstResponder];
    [urOtherField resignFirstResponder];
}

并在此方法中退出键盘

【讨论】:

  • 这看起来是一个更好的解决方案 +1。
【解决方案2】:

一个更简单的方法是将inputAccessoryView 添加到您的文本字段。此输入附件视图可以是 UIToolbar,您的 Done 按钮只有一个 UITabBarButton

少了很多hack,看起来就像在Safari中用来关闭键盘的附件视图。

【讨论】:

    【解决方案3】:

    我遇到了类似的问题。这里是the solution..

    已编辑

    添加

    - (void)viewDidLoad 
    {
            [super viewDidLoad];
             UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:self
                                                                        action:@selector(tap:)];
            tap.numberOfTapsRequired = 1;
    
            [self addGestureRecognizer:tap];
    
    
    }
    
    - (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
    {
       [ageEntry resignFirstResponder];            
    }
    

    【讨论】:

    • 感谢您的回复。但这本身并不是问题的解决方案,这是一个非常耗时的 hack。
    • 你需要 IBOutlet UITextFiled *ageEntry;
    猜你喜欢
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    相关资源
    最近更新 更多