你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS 開辟之 - 封閉鍵盤 加入鍵盤 的5種方法

iOS 開辟之 - 封閉鍵盤 加入鍵盤 的5種方法

編輯:IOS開發綜合

IOS 開辟之 - 封閉鍵盤 加入鍵盤 的5種方法

 1、點擊編纂區之外的處所(UIView)

2、點擊編纂區域之外的處所(UIControl)

3、應用制造收起鍵盤的按鈕

4、應用斷定輸出字元

5、關於鍵盤掩蔽的成績

1,點擊編纂區之外的處所(UIView)

這是一種很直覺的辦法,當不再須要應用虛擬鍵盤時,只需點擊虛擬鍵盤和編纂區域外的處所,便可以將鍵盤收起,上面程式碼是在 UIView 中內建的觸碰事宜辦法函式,您可以參考 Touch Panel / 觸碰螢幕 / 壓力感應器的根本應用方法一文,找到更多關於觸碰事宜的辦法函式。

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
  if (![myTextView isExclusiveTouch]) { 
    [myTextView resignFirstResponder]; 
  } 
}

假如要應用此方法請務必記得,你操作畫面的 Custom Class 必定如果 UIView 才行。
畫面的 Custom Class 為 UIView

2. 點擊編纂區域之外的處所(UIControl)

收起虛擬鍵盤的方法與前一種雷同,然則假如你的觸碰事宜裡曾經且寫滿了程式碼,那末便可以斟酌應用,UIControl 的 Touch Up Inside 事宜來收起鍵盤,辦法是將以下程式碼與 UIControl 的 Touch Up Inside 事宜貫穿連接便可。

- (IBAction)dismissKeyboard:(id)sender { 
  [myTextView resignFirstResponder]; 
}

 假如要應用此方法請務必記得,你操作畫面的 Custom Class 必定如果 UIControl 才行。

畫面的 Custom Class 為 UIControl

將收起鍵盤的辦法與 UIControl 事宜貫穿連接

 3. 應用制造收起鍵盤的按鈕 

當沒有編纂區域之外的處所可供點擊來收起鍵盤,本身制造一個按鈕來收起今朝的虛擬鍵盤,也是一個不錯的辦法,因為按鈕必需在虛擬鍵盤湧現能力顯示於畫面上,是以必需借用 NSNotificationCenter 來贊助我們斷定今朝鍵盤的狀況。
起首在 viewDidLoad: 事宜中,向 NSNotificationCenter 停止註冊,告知 NSNotificationCenter 我們的 doneButtonshow: 辦法函式。

- (void)viewDidLoad { 
  [super viewDidLoad]; 
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (doneButtonshow:) name: UIKeyboardDidShowNotification object:nil]; 
}

如今每當虛擬鍵盤湧現時,就會主動呼喚我們自界說的 doneButtonshow: 辦法函式,接上去只需在該辦法函式裡界說按鈕湧現的辦法便可。

-(void) doneButtonshow: (NSNotification *)notification { 
  doneButton = [UIButton buttonWithType: UIButtonTypeRoundedRect]; 
  doneButton.frame = CGRectMake(0, 228, 70, 35); 
  [doneButton setTitle:@"完成編纂" forState: UIControlStateNormal]; 
  [doneButton addTarget: self action:@selector(hideKeyboard) forControlEvents: UIControlEventTouchUpInside]; 
  
  [self.view addSubview:doneButton]; 
}

最初是實作按鈕按下去時的 hideKeyboard: 辦法函式,務必記得要在函式中移除該按鈕。

-(void) hideKeyboard { 
  [doneButton removeFromSuperview]; 
  [myTextView resignFirstResponder]; 
} 

4. 應用斷定輸出字元

假如要應用輸出特定字元(例如 return 換行字元)來收起鍵盤,必需先在種別內的 @interface 區段採用  協議,您可以參考 Protocol 協議的應用方法一文,取得更多關於協議的資訊。

在采取  協議以後,接實在作出協議內的 textView:shouldChangeTextInRange:replacementText:辦法函式,此辦法函式會在字元輸出時觸發,而回傳的 BOOL 值則代表該字元能否要感化,以下程式碼就是在此辦法函式中,應用斷定輸出字元的方法來收起虛擬鍵盤(斷定字元為 return 換行字元)。

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

最初別忘卻在 viewDidLoad: 事宜中,將 UITextView 的署理物件指向本身,如許程式能力准確找到實作  協議辦法函式的種別。

- (void)viewDidLoad { 
  [super viewDidLoad]; 
  myTextView.delegate = self; 
}

5. 關於鍵盤掩蔽的成績

假如您在實作上有遭受到鍵盤掩蔽編纂區域的成績,可以參考應用 Animation 處理小鍵盤蓋住 UITextField 的成績一文,透過 Core Graphic 的 Animation 功效,在鍵盤湧現時同時挪動編纂區域來處理掩蔽的成績。

以上就是對IOS封閉鍵盤 加入鍵盤 5種方法的材料整頓,感謝年夜家對本站的支撐!

【iOS 開辟之 - 封閉鍵盤 加入鍵盤 的5種方法】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved