UITextView (SwiftUI中文文档手册)

UITextView

可滚动的多行文本区域。

class UITextView : UIScrollView

总览

UITextView支持使用自定义样式信息显示文本,还支持文本编辑。通常,您使用文本视图来显示多行文本,例如在显示大型文本文档的正文时。

此类通过使用属性来支持多种文本样式。(在低于iOS 6的iOS版本中,不支持样式化文本。)为此属性设置值会使文本视图使用属性字符串中提供的样式信息。你仍然可以使用,和属性来设置样式属性,但这些属性适用于所有文本视图中的文本。建议您使用文本视图(而不是对象)在应用程序中同时显示纯文本和富文本。attributedTextfonttextColortextAlignmentUIWebView

管理键盘

当用户点击可编辑的文本视图时,该文本视图将成为第一响应者,并自动要求系统显示关联的键盘。由于键盘的外观可能会遮挡用户界面的某些部分,因此您有责任通过重新放置任何可能遮挡的视图来确保不会发生这种情况。某些系统视图(例如表视图)可通过将第一个响应者自动滚动到视图中来为您提供帮助。但是,如果第一响应者位于滚动区域的底部,则可能仍需要调整滚动视图本身的大小或位置,以确保第一响应者可见。

在您选择时,关闭键盘是您的应用程序的责任。您可能响应特定的用户操作(例如,用户在用户界面中点击特定按钮)而关闭了键盘。要关闭键盘,请将消息发送到当前是第一响应者的文本视图。这样做会使文本视图对象结束当前的编辑会话(在委托对象的同意下)并隐藏键盘。resignFirstResponder()

可以使用协议提供的属性来自定义键盘本身的外观。文本视图对象实现此协议并支持其定义的属性。您可以使用这些属性来指定要显示的键盘类型(ASCII,数字,URL,电子邮件和其他)。您还可以配置键盘的基本文本输入行为,例如是否支持自动大写和更正文本。UITextInputTraits

键盘通知

当系统显示或隐藏键盘时,它会发布多个键盘通知。这些通知包含有关键盘的信息,包括其大小,您可以将其用于涉及重新定位视图或调整视图大小的计算。注册这些通知是获取有关键盘某些类型信息的唯一方法。系统为键盘相关事件提供以下通知:

  • keyboardWillShowNotification
  • keyboardDidShowNotification
  • keyboardWillHideNotification
  • keyboardDidHideNotification

有关这些通知的更多信息,请参阅中的描述UIWindow。

State Preservation

在iOS 6和更高版本中,如果您为该视图的属性分配一个值,它将保留以下信息:restorationIdentifier

所选文本范围,由属性报告。selectedRange

属性报告的文本视图的编辑状态。isEditable

在下一个启动周期中,该视图尝试将这些属性还原为其保存的值。如果选择范围无法应用于还原视图中的文本,则不会选择任何文本。有关状态保存和还原如何工作的更多信息


主题

初始化文本视图

1、init(frame: CGRect, textContainer: NSTextContainer?)

使用指定的文本容器创建一个新的文本视图。

2、init?(coder: NSCoder)

响应文本视图更改

3、var delegate: UITextViewDelegate?

接收者的代表。

4、protocol UITextViewDelegate

该协议定义了一组可选方法,可用于接收对象的与编辑有关的消息。该协议中的所有方法都是可选的。您可以在需要调整正在编辑的文本(例如拼写检查器程序)或修改预期插入点的情况下使用它们。UITextViewDelegateUITextView


配置文本属性

5、var text: String!

文本视图显示的文本。

6、var attributedText: NSAttributedString!

文本视图显示的样式化文本。

7、var font: UIFont?

文字的字体。

8、var textColor: UIColor?

文字的颜色。

9、var isEditable: Bool

指示接收者是否可编辑的布尔值。

10、var allowsEditingTextAttributes: Bool

一个布尔值,指示文本视图是否允许用户编辑样式信息。

11、var dataDetectorTypes: UIDataDetectorTypes

在文本视图中转换为可点击URL的数据类型。

12、var textAlignment: NSTextAlignment

用于对齐文本的技术。

13、var typingAttributes: [NSAttributedString.Key : Any]

应用于用户输入的新文本的属性。

14、var linkTextAttributes: [NSAttributedString.Key : Any]!

应用于链接的属性。

15、var textContainerInset: UIEdgeInsets

文本视图的内容区域中文本容器的布局区域的插图。


使用选择

16、var selectedRange: NSRange

接收器的当前选择范围。

17、func scrollRangeToVisible(NSRange)

滚动接收器,直到可见指定范围内的文本。

18、var clearsOnInsertion: Bool

一个布尔值,指示是否插入文本会替换先前的内容。

19、var isSelectable: Bool

一个布尔值,指示接收器是否可选。


更换系统输入视图

20、var inputView: UIView?

当文本视图成为第一响应者时显示的定制输入视图。

21、var inputAccessoryView: UIView?

当文本视图成为第一响应者时显示的定制附件视图


访问文本工具包对象

22、var layoutManager: NSLayoutManager

布局管理器,用于为接收者的文本容器布置文本。

23、var textContainer: NSTextContainer

文本容器对象,用于定义在此文本视图中显示文本的区域。

24、var textStorage: NSTextStorage

包含在此文本视图中显示的文本的文本存储对象。


通知事项

25、class let textDidBeginEditingNotification: NSNotification.Name

通知观察者编辑会话从文本视图开始。受影响的视图存储在object通知的参数中。该字典不被使用。userInfo

26、class let textDidChangeNotification: NSNotification.Name

通知观察者文本视图中的文本已更改。受影响的视图存储在object通知的参数中。该字典不被使用。userInfo

27、class let textDidEndEditingNotification: NSNotification.Name

通知观察者针对文本视图的编辑会话已结束。受影响的视图存储在object通知的参数中。该字典不被使用。userInfo


Constants

28、struct UIDataDetectorTypes

定义可以在基于文本的内容中检测到的信息的类型。


实例属性

29、var usesStandardTextScaling: Bool

技术交流

QQ:3365059189
SwiftUI技术交流QQ群:518696470

你可能感兴趣的:(UIKit中文手册与教程)