Tespit iOS bir UİTextView atfedilen metin üzerinde musluklar
Bir NSAttributedString gösteren bir UİTextView var. Bu dize dokunduğunuz zaman bir eylemi gerçekleştirmek böylece geri çağırdı olsun tappable, böyle yapmak istiyorum bu sözcükleri içerir. Bu UİTextView bir URL musluklar Algıla ve benim temsilci arayabilir farkındayım, ama bu URL değil mi...
İOS7 ve TextKit gücü ile bu artık mümkün olması gerektiğini, ancak herhangi bir örnek bulamıyorum ve nereden başlayacağınızı emin değilim gibi geliyor bana.
Anlıyorum ki bu artık mümkün oluşturmak için özel öznitelikleri string (gerçi yapmadım henüz), ve belki de bu olacak yararlı için tespit eğer bir sihirli kelime oldu vurdu? Her durumda, ben hala dokunun ve dokunun oluştu hangi algılayan yakalamak için nasıl şimdi yok.
Herkes bir çözüm var mı?
İOS 6 uyumluluğu gerekli olduğunu unutmayın.
CEVAP
Ben sadece Diğerleri biraz daha fazla yardım etmek istedi. Shmidt ardından gelen tam olarak benim özgün soru sormuştum olarak yapmak mümkün değil cevap.
1) özel öznitelikleri tıklanabilir kelimeler için uygulanan ile ilişkili bir dize Oluşturun. örn.
NSAttributedString* attributedString = [[NSAttributedString alloc] initWithString:@"a clickable word" attributes:@{ @"myCustomTag" : @(YES) }];
[paragraph appendAttributedString:attributedString];
2) Bu dize görüntülemek için bir UİTextView Oluşturun ve bir UİTapGestureRecognizer ekleyin. Kolu dokunun:
- (void)textTapped:(UITapGestureRecognizer *)recognizer
{
UITextView *textView = (UITextView *)recognizer.view;
// Location of the tap in text-container coordinates
NSLayoutManager *layoutManager = textView.layoutManager;
CGPoint location = [recognizer locationInView:textView];
location.x -= textView.textContainerInset.left;
location.y -= textView.textContainerInset.top;
// Find the character that's been tapped on
NSUInteger characterIndex;
characterIndex = [layoutManager characterIndexForPoint:location
inTextContainer:textView.textContainer
fractionOfDistanceBetweenInsertionPoints:NULL];
if (characterIndex < textView.textStorage.length) {
NSRange range;
id value = [textView.attributedText attribute:@"myCustomTag" atIndex:characterIndex effectiveRange:&range];
// Handle as required...
NSLog(@"%@, %d, %d", value, range.location, range.length);
}
}
Nasıl yapılacağını bilince kolay oluyor!
Nasıl bir özellik bir ExpandoObject üz...
Bırak UİTextField metin üzerinde Gölge...
Eğri mevcut daire üzerinde metin...
™ : Çalışan bir masaüstü tarayıcı üzer...
Program aracılığıyla metin seçme iOS c...