Ios7 我可以通过长按标签来更新标签的值吗?iOS

Ios7 我可以通过长按标签来更新标签的值吗?iOS,ios7,xcode5,uilabel,long-press,Ios7,Xcode5,Uilabel,Long Press,我在iphoneios7设备上用Xcode 5编写了一个简单的应用程序。 我有一个以+/-按钮递增的标签,但我想给用户一个选项,让用户将他的号码插入这个标签。 如何使用长按识别器进行识别? 谢谢。使用ui长按手势识别器和ui文本视图 将ui长按GSTURE识别器属性添加到视图控制器: @property UILongPressGestureRecognizer *gestureRecognizer; 您需要声明视图控制器符合UITextViewDelegate和UIgestureRecogni

我在iphoneios7设备上用Xcode 5编写了一个简单的应用程序。 我有一个以+/-按钮递增的标签,但我想给用户一个选项,让用户将他的号码插入这个标签。 如何使用长按识别器进行识别?
谢谢。

使用
ui长按手势识别器
ui文本视图

ui长按GSTURE识别器
属性添加到视图控制器:

@property UILongPressGestureRecognizer *gestureRecognizer;
您需要声明视图控制器符合
UITextViewDelegate
UIgestureRecognitizerDelegate
协议:

@interface ViewController : UIViewController<UITextViewDelegate, UIGestureRecognizerDelegate>
这是长按文本视图时将调用的方法:

-(void) textViewLongPressed:(UILongPressGestureRecognizer *)sender
{
    self.textView.editable = YES;
    [self.textView becomeFirstResponder];
}
UIgestureRecognitizerDelegate

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    if (self.gestureRecognizer == gestureRecognizer){
        return YES;
    }
    return NO;
}
编辑完文本视图后

-(void) textViewDidEndEditing:(UITextView *)textView
{
    self.textView.editable = NO;
}
要在按return键时关闭键盘,请执行以下操作:

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if ([text isEqualToString:@"\n"])
        [textView resignFirstResponder]; // or [textView endEditing:YES]

    return YES;
}

如果你想让它可编辑,就必须使用UITextView。我试过了,我有一个键盘,输入数字后不会消失。你想在文本视图外点击时关闭键盘吗?在我按下键盘上的“完成”后1.键盘没有关闭2.我有一个警告:从不兼容的类型“GoalsSetUpViewController*const\u strong”分配给“id”,如果不关闭键盘,可以关闭键盘输入的号码或在视图中按另一个按钮?如果我第二次长按,键盘将不显示否,但如果在按下按钮时在文本视图中调用
resignFirstResponder
,它将被取消。谢谢,为什么第二次按时没有键盘?
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if ([text isEqualToString:@"\n"])
        [textView resignFirstResponder]; // or [textView endEditing:YES]

    return YES;
}