[英]iOS 6 - Responding to Keyboard Done Button State
在iOS Apprentice系列電子書中,您應該構建一個清單應用程序。 本教程將指導您完成並根據UITextField對象內部的文本在按鈕欄上創建“完成”按鈕。
- (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newText = [theTextField.text stringByReplacingCharactersInRange:range withString:string];
self.doneBarButton.enabled = ([newText length] > 0);
return YES;
}
現在,如果文本字段為空,則將鍵盤設置為禁用“完成”按鈕(在鍵盤上)。 有沒有辦法觀察鍵盤“完成”按鈕的狀態並使“完成”按鈕欄按鈕相應地反映出來?
IE,當啟用鍵盤完成按鈕時,按鈕欄完成按鈕被啟用。
UITextField
通過enablesReturnKeyAutomatically
屬性支持所需的內容。 此屬性來自UITextInputTraits
協議。
創建UITextField
,請設置此屬性。
self.textField.enablesReturnKeyAutomatically = YES;
這意味着如果文本字段為空,則“返回”鍵(無論是否帶有標簽)將自動被禁用。 輸入文本后,它將自動啟用。
無法觀察到這種狀態,因此您必須實現textField:shouldChangeCharactersInRange:replacementString:
已有的代碼,以更新其他“完成”按鈕。
您可以在文本字段中添加帶有以下事件的目標。
UIControlEventEditingDidBegin
UIControlEventEditingChanged
UIControlEventEditingDidEnd
UIControlEventEditingDidEndOnExit
UIControlEventAllEditingEvents
示例:在viewDidLoad
[_textField addTarget:self action:@selector(textFieldEditing:) forControlEvents:UIControlEventAllEditingEvents];
動作方法:
- (void)textFieldEditing:(id)sender
{
_doneButton.enable = ([[sender text] length]>0);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.