- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
如何在 UITextView
中进行语法突出显示,特别是 Objective-C
的 语法突出显示(和 检测) > 在 iPhone 上?
我对如何做到这一点的一些想法:
NSAttributedString
。现在可在 iOS 3.2 及更高版本中使用。但是如何将 NSAttributedString
放入 UITextView?UIWebView
。当用户完成编辑并使用 CSS 样式表为文本着色时覆盖它。但是我如何在 UIWebView
中做到这一点,给它文本然后着色呢?最佳答案
更新:自从 iOS 7 和 TextKit 以来,语法高亮变得非常容易。 Look no further than here (由我介绍)。
假设你想要一个可编辑的组件,那就没有太大希望了。简要概述一下,以确保我涵盖了所有内容:
UITextView
:仅纯文本,没有(公共(public))方式。但可编辑。没有机会改变任何东西,没有机会获得几何等。在内部使用 web View 。每一段都是一个<div>
,由编辑引擎更改。您可以在那里更改 DOm,但这都是私有(private) API。全部私有(private),因此没有选择。UIWebView
: html,所以它可以设置样式,嵌入图像等。我猜(没有仔细研究)这就是前面提到的 3 20 UI 使用的。问题:无法编辑。没有(公开的)方法可以解决这个问题。如果没有私有(private) API,您将无法获得选择、访问 DOM 等,而且会很头疼。编辑就像在 UITextView 中一样工作,但需要一个全新的头痛级别。仍然:私有(private)。CoreText
框架:从 iOS 3.2 开始,一个非常非常好的渲染引擎。但就是这样。可以直接布局渲染NSAttributesString
s。但是,没有用户交互。没有文本选择,没有文本输入,没有拼写检查,没有替换,没有高亮,不不不不不。只是渲染。还需要做大量工作才能使其在带有长文本的旧设备上快速运行。UITextInput
协议(protocol):允许与键盘交互并获取文本输入。还具有基本的文本替换功能。问题:仅文本输入,记录不充分。没有文本选择等(见上文)。所以我们到了。两个缺少中心功能的全功能组件和两个缺少缺失环节的部分解决方案。以下是我能想到的所有可行方法:
UITextView
未设置样式并显示 UIWebView
中设置样式的内容.对于后者,您可以使用 Three20。CoreText
之间缺失的链接和 UITextInput
.这包括但不限于文本选择、突出显示、背景颜色、文本存储和管理、效率、拼写检查等。其中一些由系统框架提供,但仍需要大量集成。UItextView
s DOM。Omni Group 采用了第二种方法并创建了一个可编辑的 TextView 。您可以在 OmniUI 中找到它框架。然而,这种实现远非完美。 (至少是几个月前我最后一次检查的时候)。他们很努力,但在用户交互方面仍然未能达到苹果的完美。 Apple 肯定已经投入了至少几个人年的时间来只做与文本选择和编辑的 UI 交互。在家无事可做,甚至对于作为全能集团的公司来说也是如此。
这一切都有一个有趣的方面:iWork。 Apple 声称不会在其中使用任何私有(private) API。但是文本选择与操作系统中的非常相同。所以他们必须将框架源代码复制到应用程序中。非常诚实的做法;)
关于iphone - 带有语法高亮的 UITextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3642540/
我有一个程序: [textView setFont:[UIFont fontWithName:@"ArialMT" size:20]]; [textVi
我正在 UITextViewDelegate 中处理代码。那里的每个函数都会接收接收事件的 UITextView 实例,例如: - (void)textViewDidBeginEditing:(UIT
我想在默认图像附件菜单选项(复制图像、保存到相机胶卷)中添加另一个菜单选项。请注意,如果 textView 未处于编辑模式,则当您长按嵌入在 UITextView 中的图像时会显示这些选项。 我已经尝
我想尝试禁用 UITextTapRecognizer,我认为它是 UITextView 的内置属性,因为我怀疑它会干扰我想要实现的点击手势识别器。这怎么可能? 感谢阅读! 最佳答案 我不确定这是否直接
首先我使用这个 UITextView 类 TextView 类.h @interface textViewClass : UITextView TextView 类.m @implementation
我正在开发一个应用程序,我需要为大文本放置一个 UITextView。我有一个尺寸为 180X89 的背景图像(与 UITextView 框架大小相同)。当将图像放在 UITextView 后面时,一
我只是想在 UITextView 中输入一些默认文本。有几个段落,我想用一个新行分隔这些段落。但是,当我按回车时,它只是完成了数据的输入。 在界面生成器中为 UITextView 创建默认文本时,如何
我的 iPhone 应用程序中有两个 UITextView。当用户选择一个 UITextView 时, Controller 会自动转到另一个 UITextView。我在我的项目中尝试了以下方式。但是
我正在使用 UITextView 并在我的代码中分配一些文本,但出于某种原因,它总是在 5-6 行之后开始。 UITextView 是一个 AttributedTextView 或允许属性字符串。
我有一个自定义 UIView,我想在其中布局一组 UITextView 以响应 AJAX 调用。所以我想我需要在代码中创建这些。我目前将位置设置为固定位置,但宁愿将其设置为比前一个位置低 20 像素。
我正在开发一个应用程序,它具有动态添加 TextView 的功能,在我们拖动它时增加和减小它的大小。 我可以根据字符数调整 TextView 大小,方法是将 TextView 的内容大小设置为 Tex
这可能是个愚蠢的问题。我正在尝试像所附图片一样设置左/右页边距。我通过在UIScrollView中添加UITextView成功实现了。但是,我几乎可以单独使用 UITextView 实现我想要的一切。
我有一个 UITextView。我正在根据方法 textViewDidChange 中文本的大小调整 TextView 的大小。这在我打字时工作正常。但是当我粘贴一些东西时,这不会接到电话。这是预期的
我正在开发一个基于消息的 iPhone 应用程序。我有一个屏幕可以回复收到的消息。此屏幕包含两个 UITextView,如 bottomTextView 和 topTextView。 topTextV
我用 View 制作了一个 UITextview 自定义控件。它工作正常。当我输入新行时, TextView 会随着 View (深蓝色)而增加。此后 TextViell 将以滚动的形式工作。 代码是
我想在用户完成编辑并点击屏幕上的其他地方后对我的 UITextView 执行一些处理。最佳做法是什么? 我几乎设法通过 func textViewDidEndEditing(textView: UIT
我想更改富 UITextView (iOS 6) 的部分或全部属性文本,并允许用户撤消更改。 看完NSUndoManager documentation ,我尝试了第一种方法: “Simple und
当我在 IOS7 模拟器上测试我的应用程序时。 有时我在使用 sizeToFit 时发现它很奇怪的 UITextView .sizeToFit后的框架看起来是对的,但文字只能部分显示,就像下面的照片一
我想要一个 tablew View ,其行为类似于 Apple 的 iPhone 联系人应用程序:一个 uitableviewcell,里面有一个 uitextview,这样当我在 uitextvie
我有一个可编辑的 UITextView,然后是一个仅供选择的 UITextView。当我在第一个 UITextView 中写东西时,有时我想引用另一个 UITextView 来复制文本,然后将其粘贴到
我是一名优秀的程序员,十分优秀!