替换 uitextview 的布局管理器

use*_*972 4 nslayoutmanager uitextview ios7

Mac OS X上的NSTextContainer有一个方法replaceLayoutManager:用NSLayoutManager的子类替换NSTextView的NSLayoutManager。

不幸的是iOS没有这样的功能。我尝试了这些代码行的组合,但它不断崩溃。

THLayoutManager *layoutManager = [[THLayoutManager alloc] init];
    [layoutManager addTextContainer:[self textContainer]];

    //      [[self textStorage] removeLayoutManager:[self layoutManager]];
    //[[self textStorage] addLayoutManager:layoutManager];
    [[self textContainer] setLayoutManager:layoutManager];
Run Code Online (Sandbox Code Playgroud)

替换 UITextview 的 NSLayoutManager 的正确步骤是什么?

小智 6

从iOS9开始,NSTextContainer的方法与macOS相同。所以现在你可以用你自己的子类替换故事板 UITextView 上的布局管理器:

textView.textContainer.replaceLayoutManager(MyLayoutManager())
Run Code Online (Sandbox Code Playgroud)