2016-07-21 10 views
5

Ich habe viel gesucht, wie Link in UITextView mit bearbeitbaren Eigenschaft auf true gesetzt, aber keine Lösung gefunden. Alle Lösungen schlagen vor, editierbare zu NO, aber bei Bedarf kann ich nicht bearbeitbar zu NO.UITextView erkennen Link mit editierbaren Eigenschaft zu True

+0

Sie möchten ein uitextfield deaktivieren? –

+0

überprüfen Sie meine Antwort wird es sicher funktionieren –

+0

alle, wie ich meine Textansicht als apples App "Notizen" verwenden möchte. –

Antwort

5

Leider können Sie kein editierbares UITextView mit anklickbaren Links haben.

Aber Sie können diesen Code versuchen, es könnte funktionieren. Ich bekomme diese von einem Tutorial: http://www.ama-dev.com/editable-uitextview-with-link-detection/

UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(editTextRecognizerTabbed:)]; 
recognizer.delegate = self; 
recognizer.numberOfTapsRequired = 1; 
[self.textViewNotes addGestureRecognizer:recognizer]; 

- (void) editTextRecognizerTabbed:(UITapGestureRecognizer *) aRecognizer; 
{ 
    self.textViewNotes.dataDetectorTypes = UIDataDetectorTypeNone; 
    self.textViewNotes.editable = YES; 
    [self.textViewNotes becomeFirstResponder]; 
} 

- (void)textViewDidEndEditing:(UITextView *)textView; 
{ 
    self.textViewNotes.editable = NO; 
    self.textViewNotes.dataDetectorTypes = UIDataDetectorTypeAll; 
} 
+2

Ja, ich wollte das nur vorschlagen :), upvoted. –

+0

@BhumitMehta danke :) –

+2

@PranavGupte guten Vorschlag. Ich dachte dasselbe. Upvoted :) –

3

ich diesen blog gefunden habe. Aus dem Beispiel: Um eine UITextView mit klickbaren Links editierbar zu machen, sollten Sie eine gestureRecognizer einrichten und die UITextView editierbar machen. Der Code ist:

- (void)configureTextView { 
    UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(textViewTapped:)]; 
    recognizer.numberOfTapsRequired = 1; 
    textView.editable = NO; 
    textView.dataDetectorTypes = UIDataDetectorTypeLink; 
    [textView addGestureRecognizer:recognizer]; 
} 

// Notification from the recogniser that the UITextView was tapped 
- (void)textViewTapped:(UIGestureRecognizer *)recognizer { 
    UITextView *textView = (UITextView *)recognizer.view; 
    textView.editable = YES; 
    [textView becomeFirstResponder]; 
} 

// UITextViewDelegate method 
- (void)textViewDidEndEditing:(UITextView *)textView { 
    textView.editable = NO; 
} 
+0

Ich habe auch versucht das gleiche und funktioniert gut, aber ein Problem immer noch dort dh. Wenn ich auf den Link klicke, wird der Link textview nicht zum Responder. Entsprechend meiner Anforderung, wenn ich auf Link klicke, sollte es im Browser geöffnet sein und wenn ich in Textansicht tappe außer lnk-Position sollte es bearbeitbar sein –

+0

@RajGgrawal mit dieser Lösung ist der Link anklickbar, bis der textView nicht bearbeitet wird. Sie benötigen den Link anklickbar, auch wenn der TextView bearbeitet wird? – Signo

0

Sie UITapGestureRecognizer für die UITextField verwenden können.

Verwandte Themen