2011-08-02 27 views
1

我有一个应用程序有一个UITextField存在允许我的用户输入他们的年龄和另一个数值。理想情况下,我希望键盘在编辑TextField时弹出数字键盘。目前,我已将它设置为数字和标点符号,仅仅是为了利用“完成”按钮来关闭键盘,因为数字键盘没有完成按钮。UITextField - resignFirstResponder查询

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

-(IBAction)backgroundTapped:(id)sender; 

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

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

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

任何想法?

+0

你想添加完成按钮到数字键盘? – Maulik

+0

理想情况下,像数字键盘上的完成按钮,但不是在选项中。我希望能够挖掘我的背景来解雇键盘 –

回答

1

使用方法

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

只要检测到您的viewController的视图触摸辞职键盘在这种方法

+0

这看起来像一个更好的解决方案+1。 –

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];    
} 
+0

感谢您的答复。但这不是解决问题本身的问题,这是非常耗时的。 –

+0

检查更新回答 – Maulik

+0

你需要IBOutlet UITextFiled * ageEntry; – Maulik

1

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

少得多的黑客,并且看起来像在Safari中使用的配件视图来解除键盘。

相关问题