UITextField - resignFirstResponder查询

时间:2011-08-02 08:53:09

标签: iphone objective-c uitextfield resignfirstresponder

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

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

-(IBAction)backgroundTapped:(id)sender;

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

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

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

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

使用方法

检测viewController视图中的触摸
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [urAgeField resignFirstResponder];
    [urOtherField resignFirstResponder];
}

并以此方法重新签名键盘

答案 1 :(得分:1)

更简单的方法是在文本字段中添加inputAccessoryView。此输入附件视图可以是UIToolbar,其完成按钮只有一个UITabBarButton

更糟糕的是,并且看起来像用于例如Safari的配件视图来解除键盘。

答案 2 :(得分:0)

我有类似的问题。这是the solution ..

<强> EDITED

添加

- (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];            
}