NSAttributedString如何遵循MVC范例?

时间:2013-02-04 17:07:47

标签: ios objective-c model-view-controller nsattributedstring

任何人都可以向我解释NSAttributedString如何正确遵循MVC范式?我知道它不是从NSString继承的,但它仍然是一个字符串,所以我会说这是我模型的一部分。但是,在谈论MVC时,设置UI属性(如下划线,字体,阴影等)显然是View的一部分,所以我不确定这是如何遵循规则的。

2 个答案:

答案 0 :(得分:8)

NSAttributedString是一个模型类。

它只是表示属性字符串。

仅仅因为它存储了属性,这并不会使它负责显示属性。

想象一下,你有一个形状的自定义类。如果你有一个正方形的形状并存储它的颜色,它仍然是一个模型对象,因为它取决于呈现视图来绘制正方形并用颜色填充它,模型对象只是存储属性的地方。 / p>

答案 1 :(得分:2)

NSAttributedString提供基础结构,是Cocoa样式文本模型类NSTextStorage的超类。 NSTextStorage只是一个NSAttributedString,可以与布局管理员交谈,并在编辑方面做一些簿记/便利方法。

控制器职责由NSLayoutManager处理。很多这与将unicode字符串转换为字形,样式化它们以及进行各种几何计算有关。它完成了NSTextContainer对象的所有这些,(在基类的情况下)只是花哨NSSize布局管理器可以用来计算字形应该在哪里描边,其中换行符应该是发生等等。

Cocoa的样式文本视图类是NSText及其子类,使用标尺,字体和颜色面板。 NSTextViewNSText个子类,NSCells共享NSText个对象来编辑其内容。 NSTextNSResponder,它接受​​textStorage和layoutManager的文本编辑消息(如果存在)。