欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS中的UITextView文字輸入光標(biāo)使用技巧小結(jié)

 更新時(shí)間:2016年05月31日 09:26:05   投稿:goldensun  
UITextView在用戶體驗(yàn)方面有著十分明顯的作用,包括鍵盤(pán)的呼出及文字的選擇等,接下來(lái)就來(lái)整理給出一份iOS中的UITextView文字輸入光標(biāo)使用技巧小結(jié),需要的朋友可以參考下

1.創(chuàng)建并初始化

 @property (nonatomic, strong) UITextView *textView; 

// 創(chuàng)建
self.textView = [[UITextView alloc] initWithFrame:self.view.frame]; 

// 設(shè)置textview里面的字體顏色 
 self.textView.textColor = [UIColor blackColor]; 
// 設(shè)置字體名字和字體大小 
 self.textView.font = [UIFont fontWithName:@"Arial" size:18.0]; 
// 設(shè)置代理
 self.textView.delegate = self;  
// 設(shè)置它的背景顏色
 self.textView.backgroundColor = [UIColor whiteColor]; 
 self.textView.text = @“hehe”; 
// 返回鍵的類型 
 self.textView.returnKeyType = UIReturnKeyDefault; 
// 鍵盤(pán)類型 
 self.textView.keyboardType = UIKeyboardTypeDefault; 

// 是否可以拖動(dòng)  
self.textView.scrollEnabled = YES;


2. UITextView退出鍵盤(pán)的幾種方式
(1)如果你程序是有導(dǎo)航條的,可以在導(dǎo)航條上面加多一個(gè)Done的按鈕,用來(lái)退出鍵盤(pán),當(dāng)然要先實(shí)現(xiàn)UITextViewDelegate。

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

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(getOverEditing)];  

}  
- (void)textViewDidEndEditing:(UITextView *)textView {  
  self.navigationItem.rightBarButtonItem = nil; 
} 
- (void)getOverEditing{
 [self.textView resignFirstResponder];  
}

(2)如果你的textview里不用回車鍵,可以把回車鍵當(dāng)做退出鍵盤(pán)的響應(yīng)鍵。

#pragma mark - UITextView Delegate Methods   
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{  
 if ([text isEqualToString:@"\n"]) {  
   [textView resignFirstResponder];  
   return NO;  
  }
 return YES;  
}

(3)還有你也可以自定義其他視圖控件加載到鍵盤(pán)上用來(lái)退出,比如在彈出的鍵盤(pán)上面加一個(gè)view來(lái)放置退出鍵盤(pán)的Done按鈕。

   UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 30)]; 
   UIBarButtonItem * cancelButton= [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)]; 
   NSArray * buttonsArray = @[cancelButton]; 
   [topView setItems:buttonsArray]; 
   [self.textView setInputAccessoryView:topView]; 
 -(void)dismissKeyBoard 
 { 
   [tvTextView resignFirstResponder]; 
 }

3.UITextView自定選擇文字后的菜單

在ViewDidLoad中加入:

- (void)viewDidLoad
{
  [super viewDidLoad];
  self._textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 100, 300, 200)];
  [self.view addSubview:_textView];  
  UIMenuItem *menuItem = [[UIMenuItem alloc]initWithTitle:@“我是自定義的菜單" action:@selector(didClickCustomMenuAction)]; 
  UIMenuController *menu = [UIMenuController sharedMenuController]; 
  [menu setMenuItems:[NSArray arrayWithObject:menuItem]]; 
  [menuItem release]; 
}

當(dāng)然上面那個(gè)@selector里面的changeColor方法還是自己寫(xiě)吧,也就是說(shuō)點(diǎn)擊了我們自定義的菜單項(xiàng)后會(huì)觸發(fā)的方法。
然后還得在代碼里加上一個(gè)方法:

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 
  if(action ==@selector(changeColor) || action == @selector(copy:)) 
  { 
    if(_textView.selectedRange.length>0) 
      return YES; 
  } 
  return NO; 
} 
-(void)didClickCustomMenuAction
{
  NSLog(@"%@“,__function__);
}

4.設(shè)置UITextView內(nèi)邊距
當(dāng)我們因?yàn)橐恍┬枨髮ITextView當(dāng)成UILabel使用(為了使用UITextView自帶的復(fù)制,粘貼,選擇功能),這時(shí)我們只需要禁用UITextView的幾個(gè)屬性就行了

textView.editable = NO;//不可編輯 
textView.scrollEnabled = NO;//不可滾動(dòng) 
textView.editable = NO;//不可編輯 
textView.scrollEnabled = NO;//不可滾動(dòng) 

這樣就ok;
但是當(dāng)我們?cè)趯?shí)際運(yùn)用時(shí),想計(jì)算文字的大小并設(shè)置UITextView的顯示大小

UIFont *font = [UIFont systemFontOfSize:14.0f]; //指定字符串的大小 
 
[textView setText:content]; 
 
CGSize textSize = [content sizeWithFont:font constrainedToSize:CGSizeMake(200, 2000) lineBreakMode:UILineBreakModeCharacterWrap]; 
 
CGRect articleframe = [articleLabel frame]; 
textView.size.height = textSize.height ; 
 textView.size.width = textSize.width; 
[textView setFrame:articleframe]; 
UIFont *font = [UIFont systemFontOfSize:14.0f]; //指定字符串的大小 
 
[textView setText:content]; 
 
CGSize textSize = [content sizeWithFont:font constrainedToSize:CGSizeMake(200, 2000) lineBreakMode:UILineBreakModeCharacterWrap]; 
 
CGRect articleframe = [articleLabel frame]; 
textView.size.height = textSize.height ; 
 textView.size.width = textSize.width; 
[textView setFrame:articleframe]; 

但是通過(guò)這種方法在UILabel上使用沒(méi)有任何問(wèn)題,但是在UITextView是卻不行,文字總是顯示不全,不管你主動(dòng)寫(xiě)多了高度給它,當(dāng)文字不一樣了雙會(huì)顯示不全或顯示高度過(guò)多;
可以用下面的方法試一下

[self.articleLabel setContentInset:UIEdgeInsetsMake(-10, -5, -15, -5)];//設(shè)置UITextView的內(nèi)邊距 
[self.articleLabel setTextAlignment:NSTextAlignmentLeft];//并設(shè)置左對(duì)齊 
[self.articleLabel setContentInset:UIEdgeInsetsMake(-10, -5, -15, -5)];//設(shè)置UITextView的內(nèi)邊距 
[self.articleLabel setTextAlignment:NSTextAlignmentLeft];//并設(shè)置左對(duì)齊 

相關(guān)文章

  • iOS中生成指定大小、指定顏色的二維碼和條形碼方法詳解

    iOS中生成指定大小、指定顏色的二維碼和條形碼方法詳解

    本文主要介紹了iOS中生成指定大小、指定顏色的二維碼和條形碼的具體實(shí)現(xiàn)方法,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2016-12-12
  • Unity移動(dòng)端的復(fù)制要這么寫(xiě)示例代碼

    Unity移動(dòng)端的復(fù)制要這么寫(xiě)示例代碼

    這篇文章主要給大家介紹了關(guān)于Unity移動(dòng)端的復(fù)制的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • 詳解iOS視頻播放方式

    詳解iOS視頻播放方式

    本篇文章給大家詳細(xì)講述了詳解iOS視頻播放方式以及第三方開(kāi)元播放軟件的使用,學(xué)習(xí)下吧。
    2017-12-12
  • iOS開(kāi)發(fā)UI篇—xib的簡(jiǎn)單使用實(shí)例

    iOS開(kāi)發(fā)UI篇—xib的簡(jiǎn)單使用實(shí)例

    本篇文章主要介紹了iOS開(kāi)發(fā)UI篇—xib的簡(jiǎn)單使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-11-11
  • iOS開(kāi)發(fā)中的幾個(gè)手勢(shì)操作實(shí)例分享

    iOS開(kāi)發(fā)中的幾個(gè)手勢(shì)操作實(shí)例分享

    這篇文章主要介紹了iOS開(kāi)發(fā)中的幾個(gè)手勢(shì)操作實(shí)例分享,編寫(xiě)代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-09-09
  • 輕松理解iOS 11中webview的視口

    輕松理解iOS 11中webview的視口

    這篇文章主要介紹了iOS 11中webview的視口知識(shí),需要的朋友可以參考下
    2017-09-09
  • IOS 中XAMPP配置問(wèn)題及解決方法

    IOS 中XAMPP配置問(wèn)題及解決方法

    這篇文章主要介紹了IOS 中XAMPP配置問(wèn)題及解決方法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • iOS中如何引用另一個(gè)工程的方法教程

    iOS中如何引用另一個(gè)工程的方法教程

    在iOS開(kāi)發(fā)中,引用另一個(gè)工程是大家可能會(huì)遇到的一個(gè)問(wèn)題,所以這篇文章主要給大家介紹了關(guān)于iOS中如何引用另一個(gè)工程的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)各位iOS開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • iOS中創(chuàng)建Model的最佳實(shí)踐記錄

    iOS中創(chuàng)建Model的最佳實(shí)踐記錄

    這篇文章主要給大家介紹了關(guān)于iOS中創(chuàng)建Model的最佳實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用iOS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • iOS表情鍵盤(pán)的簡(jiǎn)單實(shí)現(xiàn)代碼

    iOS表情鍵盤(pán)的簡(jiǎn)單實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了iOS表情鍵盤(pán)的簡(jiǎn)單實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03

最新評(píng)論