国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iOSUI控件(2)UITextView

2019-11-14 19:09:07
字體:
來源:轉載
供稿:網友

1.多行文本控件(UITextView)

多行文本控件(UITextView)繼承了UIScrollView:UIView,默認帶有滾動條。

1.1 UIScrollView支持的屬性

UIScrollView代表一個可滾動的控件,該控件允許用戶拖動手指來滾動該控件中的內容。UIScrollView默認已經實現并處理放大或縮小手勢。

三個控制顯示區域的屬性:

  • contentSize CGSize,結構體,包含width、height,代表UIScrollView所需要顯示內容的完整寬度和高度
  • contentInset UIEdgeInserts,包含top/left/bottom/right,分別代表UIScrollView所需要顯示內容上、左、下、右的留白。
  • contentOffset CGPoint,包含x/y,代表UIScrollView的可視區域在顯示內容上滾動的距離。

其他屬性:

  1. Scrollers
  2. Bounce
  3. Zoom
  4. Touch

1.2 使用委托對象處理UITextView事件

UITextView沒有集成UIControl基類,因此并不支持IBAction事件處理方式。

UITextView控制的事件交給委托對象處理,UITextView委托對象必須事件UITextViewDelegate協議。

該下雨定義了如下方法:

  • -textViewShouldBeginEditing: 將要開始編輯內容時觸發
  • -textViewDidBeginEditing 開始編輯時觸發
  • -textViewShouldEndEditing: 將要結束時觸發
  • -textViewDidEndEditing: 用戶結束編輯時觸發
  • -textView:shouldChangeTextInRange:replacementText: UITextView指定范圍內的文本內容被替換時觸發
  • -textViewDidChange: UITextView包含的文本內容發生改變時觸發
  • -textViewDidChangeSelect: 用戶選中控件內的某些文本時觸發
實例:導航按鈕關閉虛擬鍵盤

效果圖:

圖片名稱

UIBarButtonItem* done;UINavigationItem* navItem;- (void)viewDidLoad {    [super viewDidLoad];    //將該控制本身設置為TextView控件的委托對象    self.textView1.delegate = self;        //創建并添加導航條    UINavigationBar * navBar = [[UINavigationBar alloc] initWithFrame:                                CGRectMake(0, 20, 380, 44)];    [self.view addSubview:navBar];        navItem= [[UINavigationItem alloc] initWithTitle:@"導航條"] ;    [navBar pushNavigationItem:navItem animated:YES];    navBar.items = [NSArray arrayWithObject:navItem];        done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(finishEdit)];        }-(void)finishEdit{    [self.textView1 resignFirstResponder];}-(void) textViewDidBeginEditing:(UITextView *)textView{    navItem.rightBarButtonItem = done;}-(void) textViewDidEndEditing:(UITextView *)textView{    navItem.rightBarButtonItem = nil;}
實例:自定義鍵盤附件關閉虛擬鍵盤

效果圖:

圖片名稱

實現代碼:

-(void) viewDidLoad{    [super viewDidLoad];    //創建一個UIToolBar工具條    UIToolbar* topView = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 380, 30)];    //設置工具條風格    [topView setBarStyle:UIBarStyleDefault];    //為工具田創建一個“按鈕”    UIBarButtonItem * myBn = [[UIBarButtonItem alloc] initWithTitle:@"無工作" style:UIBarButtonItemStylePlain target:self action:nil];    //創建第一個“按鈕”,是一片可伸縮的空白區    UIBarButtonItem * spaceBn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];    //創建第三個按鈕,單機該按鈕會觸發editFinish方法    UIBarButtonItem * donBn = [[UIBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:self action:@selector(editFinish)];        NSArray * buttonsArray = [NSArray arrayWithObjects:myBn,spaceBn,donBn,nil];    //為UIToolBar設置按鈕    [topView setItems:buttonsArray];    //為textView 管理的虛擬鍵盤設置附件    [self.textView setInputaccessoryView:topView];}-(void) didReceiveMemoryWarning{    [super didReceiveMemoryWarning];}
自定義選擇內容后的菜單

效果圖 alt

主要代碼:

在ViewController的實現類的viewDidLoad

    //創建兩個菜單項    UIMenuItem * mailShare = [[UIMenuItem alloc]                              initWithTitle:@"郵件分享" action:@selector(mailShare:)];    UIMenuItem* weiboShare = [[UIMenuItem alloc]                              initWithTitle:@"微博分享" action:@selector(weiboShare:)];    //創建UIMenuController控制器    UIMenuController* menu = [UIMenuController sharedMenuController];    [menu setMenuItems:[NSArray arrayWithObjects:mailShare,weiboShare,nil]];

在ViewController的實現類重寫canPerformAction方法:

//重寫UIResponder的canPerformAction:withSender:方法//當該方法返回YES時,該界面將會顯示該Action對應的空間-(BOOL) canPerformAction:(SEL)action withSender:(id)sender{    if(action == @selector(mailShare:) || action == @selector(weiboShare:))    {        //如果textView選中的內容長度大于0,返回yes,        //當該方法返回YES,該Action對應的控件將會顯示出來        if(self.textView.selectedRange.length > 0)        {            return YES;        }    }    return NO;}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 承德县| 茶陵县| 卢龙县| 南郑县| 呼伦贝尔市| 延川县| 宜兰县| 怀安县| 闻喜县| 同仁县| 遵义县| 环江| 安远县| 长子县| 九龙坡区| 双城市| 河源市| 西乌| 甘谷县| 邮箱| 平顶山市| 错那县| 昭平县| 郧西县| 望都县| 禄丰县| 通城县| 漳州市| 永新县| 丹棱县| 绥化市| 本溪| 星座| 远安县| 湘阴县| 望城县| 克东县| 凉山| 色达县| 黑河市| 靖远县|