ios 開發UI篇—UITextView

ElegantHedgehog發表於2020-10-13

概述

  • UITextView可滾動的多行文字區域
  • UITextView支援使用自定義樣式資訊顯示文字,並支援文字編輯。您通常使用文字檢視來顯示多行文字,例如在顯示大型文字文件的正文時。
  • UITextView繼承於UIScrollView

屬性和方法

初始化方法

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(50, 50, [UIScreen mainScreen].bounds.size.width - 100, 300)]; 

設定文字內容

textView.text = @"測試資料";

attributedText屬性文字,這裡不多做介紹,具體請點此檢視

設定文字的字型

textView.font = [UIFont systemFontOfSize:20];

設定文字的顏色

textView.textColor = [UIColor redColor];

設定是否可以編輯,預設是YES

[textView setEditable:NO];

設定文字的對齊方式

textView.textAlignment = NSTextAlignmentRight;

使用dataDetectorTypes實現超連結,需要將可編輯狀態設定為NO(更多列舉型別到補充說明中檢視)

textView.text = @"http://baidu.com";
[textView setEditable:NO];
textView.dataDetectorTypes = UIDataDetectorTypeLink;

UITextView代理方法

即將開始編輯

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView;

已經開始編輯

- (void)textViewDidBeginEditing:(UITextView *)textView;

編輯即將結束

- (BOOL)textViewShouldEndEditing:(UITextView *)textView;

編輯已經結束

- (void)textViewDidEndEditing:(UITextView *)textView;

文字檢視在使用者輸入新字元或刪除現有字元時呼叫此方法

- (BOOL)textView:(UITextView *)textView 
shouldChangeTextInRange:(NSRange)range 
 replacementText:(NSString *)text;

輸入的內容已經變化時呼叫此方法

- (void)textViewDidChange:(UITextView *)textView;

文字檢視的選擇已更改,就會呼叫此方法

- (void)textViewDidChangeSelection:(UITextView *)textView;

如果使用者點選或長按文字附件,而其image屬性不是,則文字檢視將呼叫此方法nil。您可以使用此方法觸發一個操作,除了顯示與文字內聯的文字附件外。

- (BOOL)textView:(UITextView *)textView shouldInteractWithTextAttachment:(NSTextAttachment *)textAttachment inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction; 

該方法僅在與URL連結的第一次互動時被呼叫。例如,當使用者希望首次與URL進行互動以顯示可以採取的操作列表時,將呼叫此方法; 如果使用者從列表中選擇一個開啟的動作,則不呼叫此方法,因為“open”表示與同一個URL的第二個互動。

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction; 

文字檢視中的連結只有在文字檢視可選但不可編輯的情況下才是互動式的。也就是說,如果該值屬性是與屬性。UITextViewselectableYESeditableNO

補充說明

UITextView相關通知

UITextView相關通知名稱說明
UITextViewTextDidBeginEditingNotificationTextView開始編輯時發出的通知
UITextViewTextDidChangeNotificationTextView的內容開始改變時發出的通知
UITextViewTextDidEndEditingTextView結束編輯時發出的通知

UITextViewdataDetectorTypes屬性對應的列舉以及說明

型別說明
UIDataDetectorTypePhoneNumber檢測格式化為電話號碼的字串。
UIDataDetectorTypeLink檢測格式為URL的字串。
UIDataDetectorTypeAddress檢測格式為地址的字串。
UIDataDetectorTypeCalendarEvent檢測格式化為日曆事件的字串。
UIDataDetectorTypeShipmentTrackingNumber檢測格式化為包裹遞送公司的跟蹤號碼的字串。
UIDataDetectorTypeFlightNumber檢測格式化為航空公司航班號的字串。
UIDataDetectorTypeLookupSuggestion檢測格式化為使用者可能要查詢的資訊的字串。
UIDataDetectorTypeNone不支援超連結
UIDataDetectorTypeAll接收所有型別的字串
作者: coder小鵬

相關文章