リンクを検出し、タップがリンクに当たらないときに編集可能になる UITextView を作成しようとしています。
ネイティブの iPhone メモ アプリは、simplenote と同様にこの動作を示します。
私が見つけた最も近い解決策は、ここで概説されています: http://blog.stevex.net/2012/05/editable-uitextview-with-links/ このコードを使用:
// Add the tap gesture recogniser to the view.
- (void)configureTextView {
UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(textViewTapped:)];
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;
}
このソリューションの問題は、リンクをたどるのに長押しが必要なことです。