我有一个简单的程序,可以按下按钮进行计算。使用以下代码将结果放入标签中:
//converts the float to 2 descimal places then converts it to a string
NSString *stringRectResult=[[NSString alloc]
initWithFormat:@"%1.2f",floatCalcResult];
//displays the string result in the label
resultLabel.text=stringRectResult;
它工作得很好但是,我在代码中添加了当用户触摸键盘时隐藏小数键盘。这是有效的,但是当我添加此代码时,更新标签的按钮不再有效。有人可以帮忙吗?隐藏键盘的代码如下。该应用程序在我发表评论时有效,但在有效时无效
在viewDidLoad
:
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(tap:)];
[self.view addGestureRecognizer:tapRecognizer];
点按选择器...
-(void)tap:(UIGestureRecognizer *)gr
{
[self.view endEditing:YES];
}
感谢您的帮助。
答案 0 :(得分:0)
问题在于,通过拦截所有用户的点按(为了隐藏键盘),您可以阻止任何其他用户界面元素被点击。我敦促你重新考虑你的设计;通常不需要有明确的工具来隐藏键盘。
如果您确实希望保留此设计,可以在班级中实施gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
方法:
- (void) viewDidLoad
{
// ...
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(tap:)];
tapRecognizer.delegate = self;
[self.view addGestureRecognizer:tapRecognizer];
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
要记住两件事:
您需要将视图控制器标记为符合UIGestureRecognizerDelegate
协议。
如果您稍后在视图中添加第二个手势识别器,则需要在第二个方法中添加一个检查,以区别对待第二个识别器。