KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
According to documentation, I try to subclass NSTextStorage and use it in text view: /* NSTextStorage is a semi-abstract subclass of NSMutableAttributedString. It implements change management (beginEditing/endEditing), verification of attributes, delegate handling, and layout management notification. The one aspect it does not implement is the actual attributed string storage --- this is left up to the subclassers, which need to override the two NSMutableAttributedString primitives: - (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)str; - (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range; */ So I try to use delegate, to handle all needed events with same functionality: @implementation MyTextStorage - (id) init { self = [super init]; if (self != nil) { storage = [[NSMutableAttributedString alloc] init]; } return self; } - (void) dealloc { [storage release]; [super dealloc]; } - (NSString *) string { return [storage string]; } - (void) replaceCharactersInRange:(NSRange)range withString:(NSString *)str { [storage replaceCharactersInRange:range withString:str]; } - (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range { [storage setAttributes:attrs range:range]; } @end It is no matter what I'm use as delegate: NSTextStorage or NSMutableAttributedString, The result is the same: An uncaught exception was raised * NSRunStorage, _NSBlockNumberForIndex(): index (18446744073709551615) beyond array bounds (0) * Terminating app due to uncaught exception 'NSRangeException', reason: '*** NSRunStorage, _NSBlockNumberForIndex(): index (18446744073709551615) beyond array bounds (0)' Stack trace: 0 CoreFoundation 0x00007fff840cd7b4 __exceptionPreprocess + 180 1 libobjc.A.dylib
Tags (comma-separated)
Save Edits
Cancel