Objective c 在OSX上模拟UILabel行为

Objective c 在OSX上模拟UILabel行为,objective-c,ios,cocoa,uilabel,core-text,Objective C,Ios,Cocoa,Uilabel,Core Text,我想在OSX应用程序中模拟多行UILabel行为。 绘制多行标签可以指定行数,而linebreak系统非常有效 这里是我想要实现的一个例子 这是我想用UILabel显示的字符串 Lorem Ipsum is simply dummy text of the printing and typesetting industry. 我可以选择带有尾部截断的3行标签: Lorem Ipsum is simply dummy text of the printing and typeset.

我想在OSX应用程序中模拟多行UILabel行为。 绘制多行标签可以指定行数,而linebreak系统非常有效

这里是我想要实现的一个例子

这是我想用UILabel显示的字符串

Lorem Ipsum is simply dummy text of the printing and typesetting industry. 
我可以选择带有尾部截断的3行标签:

 Lorem Ipsum is simply 
 dummy text of the 
 printing and typeset...
或者使用带有尾部截断的2行标签,我得到:

 Lorem Ipsum is simply 
 dummy text of the pri... 
我想我需要一个低级API来以这种方式绘制字符串

目前我找到了3种不同的方法来绘制文本,我想知道哪种方法是完成这项任务的正确方法


可可文本

NSTextView和NSTextField:这似乎是一个太高的级别。。。我无法再现这种效果(NSTextView不允许我选择行数,换行符似乎在单行NSTextView中转换多行NSTextView)

编辑 我想从字符串中获取帧,然后从帧中获取线,并仅使用所需的线重建帧。你觉得怎么样


核心文本

我可以很好地控制使用框架的文本绘制,但是。。。我找不到定义要显示多少行以及如何截断字符串的方法


NSLayoutManager

这似乎也是一个很好的解决方案,但我不知道如何重现UILabel多行效果

你有什么建议可以帮我完成这项棘手的任务吗