Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c iOS等效于MacOS NSAttributedString initWithRTF_Objective C_Ios_Macos_Nsattributedstring - Fatal编程技术网

Objective c iOS等效于MacOS NSAttributedString initWithRTF

Objective c iOS等效于MacOS NSAttributedString initWithRTF,objective-c,ios,macos,nsattributedstring,Objective C,Ios,Macos,Nsattributedstring,什么是与MacOS NSAttributedString initWithRTF等效的iOS 应用程序工具包通过添加对RTF、RTFD和HTML(有或没有附件)的支持、图形属性(包括字体和标尺属性)、绘制属性字符串的方法以及计算重要语言单元的方法来扩展NoundAdvestStand类。 - (id)initWithRTF:(NSData *)rtfData documentAttributes:(NSDictionary **)docAttributes 我需要在iOS应用程序中处理短时间的

什么是与MacOS NSAttributedString initWithRTF等效的iOS

应用程序工具包通过添加对RTF、RTFD和HTML(有或没有附件)的支持、图形属性(包括字体和标尺属性)、绘制属性字符串的方法以及计算重要语言单元的方法来扩展NoundAdvestStand类。
- (id)initWithRTF:(NSData *)rtfData documentAttributes:(NSDictionary **)docAttributes
我需要在iOS应用程序中处理短时间的RTF数据流。
谢谢大家!

在iOS中没有等价物。
NSAttributedString
的iOS版本仅具有CoreText所需的功能,CoreText本身仅具有UI类所需的功能,这不包括RTF处理

据我所知,至少在5.0版本中,
UIWebView
是处理RTF的唯一方法。看见5.1版可能已经改变了这一点,因为苹果的一些其他应用现在似乎可以处理富文本(但同样,这些应用可能刚刚从
UITextView
更改为
UIWebView
…)


UIWebView
不提供任何从RTF访问属性文本的方法,因为web视图从不构建属性文本,而是构建HTML和CSS

好消息是这种HTML和CSS在DOM中可用。至少对于某些类型来说,这不是真的,您所看到的只是一个不透明的包装器,它由WebKit中的一些无法访问的魔法代码呈现,但RTF不是这些类型中的一种

使用,我打开iPhone,查看DOM。它充满了这样的节点:

<span class="s2"><span class="bumpedFont16">m a test file. This is some </span></span>
<span class="s3"><span class="bumpedFont16">bold</span></span>
direction: ltr; display: inline; font-family: 'Times New Roman'; font-size: 22px;
font-weight: bold; height: auto; margin-bottom: 0px; margin-top: 0px;
padding-right: 0px; text-align: left; width: auto;

因此,它实际上与NSAttributedString不兼容,也没有那么好(当然,除非您的最终目标是创建HTML)……但至少您可以使用它。

在iOS中没有等价物。
NSAttributedString
的iOS版本仅具有CoreText所需的功能,CoreText本身仅具有UI类所需的功能,这不包括RTF处理

据我所知,至少在5.0版本中,
UIWebView
是处理RTF的唯一方法。看见5.1版可能已经改变了这一点,因为苹果的一些其他应用现在似乎可以处理富文本(但同样,这些应用可能刚刚从
UITextView
更改为
UIWebView
…)


UIWebView
不提供任何从RTF访问属性文本的方法,因为web视图从不构建属性文本,而是构建HTML和CSS

好消息是这种HTML和CSS在DOM中可用。至少对于某些类型来说,这不是真的,您所看到的只是一个不透明的包装器,它由WebKit中的一些无法访问的魔法代码呈现,但RTF不是这些类型中的一种

使用,我打开iPhone,查看DOM。它充满了这样的节点:

<span class="s2"><span class="bumpedFont16">m a test file. This is some </span></span>
<span class="s3"><span class="bumpedFont16">bold</span></span>
direction: ltr; display: inline; font-family: 'Times New Roman'; font-size: 22px;
font-weight: bold; height: auto; margin-bottom: 0px; margin-top: 0px;
padding-right: 0px; text-align: left; width: auto;

因此,实际上与NSAttributedString不兼容,也没有那么好(当然,除非您的最终目标是创建HTML)…但至少您可以使用它。

谢谢。我使用UIWebView和带有document.documentElement.innerText的stringByEvaluatingJavaScriptFromString方法从rtf文件中获取纯文本argument@radvan72:聪明的解决办法。我认为UIWebView是没有用的,除非你只想显示RTF,但是你实际上可以通过这种方式获得内容……太好了,谢谢!这可能是我读过的苹果开发者网站上最好的东西。你知道有没有办法从RTF中获取属性文本,也许是通过WebView?@JohnK:据我所知,没有属性文本可获取。可能存在HTML和CSS,在这种情况下,您应该能够将其从DOM中取出,或者可能存在某种由您无法访问的私有代码呈现的
(如桌面Safari上的PDF文件);我不知道是哪个。@JohnK:事实上,从一个快速测试来看,至少RTF被解析为HTML和CSS。让我编辑一下答案。谢谢。我使用UIWebView和带有document.documentElement.innerText的stringByEvaluatingJavaScriptFromString方法从rtf文件中获取纯文本argument@radvan72:聪明的解决办法。我认为UIWebView是没有用的,除非你只想显示RTF,但是你实际上可以通过这种方式获得内容……太好了,谢谢!这可能是我读过的苹果开发者网站上最好的东西。你知道有没有办法从RTF中获取属性文本,也许是通过WebView?@JohnK:据我所知,没有属性文本可获取。可能存在HTML和CSS,在这种情况下,您应该能够将其从DOM中取出,或者可能存在某种由您无法访问的私有代码呈现的
(如桌面Safari上的PDF文件);我不知道是哪个。@JohnK:事实上,从一个快速测试来看,至少RTF被解析为HTML和CSS。让我编辑一下答案。