2015-12-02 14 views
5

Geçenlerde hatayı alıyorum sahipken: isteniyor caretRectForPosition: NSTextStorage olağanüstü değişiklikler

requesting caretRectForPosition: while the NSTextStorage has oustanding changes {x, x} 

* "Oustanding" Ne diyor anlamıyla, ve benim yazım hatası değildir.

Ben enumerateAttribute() yöntemi ile NSTextView alt sınıfının NSTextStorage yineleme ve metin görünümünde her değişiklikten sonra metin görünümünde NSTextAttachment s manipüle ediyorum, bu deniliyor. Böyle this olarak

func manipulateText() { 
    let text = customTextView.textStorage 
    text.enumerateAttribute(NSAttachmentAttributeName, inRange: NSMakeRange(0, text.length), options: NSAttributedStringEnumerationOptions(rawValue: 0)) { 
    // 
    } 
} 

extension ThisViewController: UITextViewDelegate { 
    func textViewDidChange(textView: UITextView) { 
     manipulateText() 
    } 
} 

Sorular çevrimiçi görünmektedir, ama bu tüm örneklerini bulmak için henüz ve iOS 9 yalnızca alakalı gibi görünüyor.

Bu, yalnızca iPad'de bir fiziksel klavye kullanılırken gerçekleşir.

+0

Fiziksel bir klavyeyle birlikte veya olmayan benim için 9.2. –

+0

@SamSoffes Biletle ilgili yöntemlerden herhangi birini geçersiz kılar mı? –

+0

Hayır. Gerçi bazı karmaşık şeyler yapıyorum. Anlamak için basitleştirmek için zaman harcamayın. –

cevap

5

Bu, metin depolaması düzenlemeleri yapılırken caretRectForPosition (veya firstRectForRange gibi çağıran herhangi bir yöntem) 'i çağırırsanız gerçekleşir.

İşlerimi yapmak için NSTextStorage öğesinde ve dispatch_async ana sıraya endEditing çağrılıncaya kadar bazı şeyleri erteleyerek bu günlükleri engelleyebildim. Görünür bir UI yanıp sönme veya async sonucunda bir şey yok.

Bunu çözmek için daha iyi bir yol olmalı, ancak bu benim anlayabildiğim tek şey.

+0

Bu konudaki son güncellemeler? Aynı göz kamaştırıcı yazım hatası mesajı alıyorum –

-2

Tanrım, sadece şu anda sorunu çözüyorum. Saklama alanınızı başka şekillerde sahip olmanız gerekiyor. bana inan ve dene

+0

Bu "düzeltme" hakkında daha fazla açıklama var mı? – siburb

+2

Yığın akışına hoş geldiniz! Lütfen aşağıdaki yorum kutusunu kullanın. Yeterli saygınlığınız olduğunda, herhangi bir gönderiye yorum yapabilirsiniz. :) –

İlgili konular