1

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

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

-(IBAction)backgroundTapped:(id)sender;

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

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

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

有任何想法吗?

4

3 回答 3

1

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

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

并以这种方法退出键盘

于 2011-08-02T08:59:00.613 回答
1

一个更简单的方法是将 a 添加inputAccessoryView到您的文本字段中。这个输入附件视图可以是UIToolbar一个单独UITabBarButton完成按钮。

更少的黑客攻击,并且看起来像在例如 Safari 中用于关闭键盘的附件视图。

于 2011-08-02T08:59:42.417 回答
0

我有一个类似的问题。这是解决方案..

已编辑

添加

- (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];            
}
于 2011-08-02T08:58:05.890 回答