如何正确设置缩进?

时间:2016-05-08 05:39:21

标签: objective-c macos cocoa

根据this我可以使用setFirstLineHeadIndent和setHeadIndent设置缩进。

但是,查看thisthis我没有看到引用这些功能。相反,我看到了这些名字的属性。

我目前正在使用以下代码:

double mm2pts = (double) 72 / 25.4;
paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setHeadIndent: 100 * mm2pts / 10.0];
[paragraphStyle setFirstLineHeadIndent: 100 * mm2pts / 10.0];
[m_textView setDefaultParagraphStyle:paragraphStyle];

我正在测试OSX 10.8,我的程序编译为最低10.7。

我的问题是:我的代码是否会使用最新的OSX SDK在最新的OSX上编译/运行?

谢谢。

[编辑]

看起来上面的代码不起作用,而以下代码确实如此:

NSRange range = NSMakeRange(start, end-start);
NSTextStorage* storage = [m_textView textStorage];
double mm2pts = (double) 72 / 25.4;
paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setFirstLineHeadIndent: 100 * mm2pts / 10.0];
[paragraphStyle setHeadIndent: 100 * mm2pts / 10.0];
[storage addAttribute: NSParagraphStyleAttributeName value: paragraphStyle range: range];
[paragraphStyle release];

这个想法是将前者用于整个控制,而后者用于所选范围。这是否意味着我应该将第一段代码应用于(0,size_of_text)范围?

[/编辑]

1 个答案:

答案 0 :(得分:0)

我看到firstLineHeadIndentheadIndentNSMutableParagraphStyle上列为属性,正如预期的那样。由于它们不是只读属性,因此可以设置和读取它们,因此遵循属性的语言规范存在以“set”开头的相应方法。所以你的问题的答案似乎是“是”。但更重要的是,听起来您需要了解属性在Objective-C中的工作方式。