簡體   English   中英

iOS 6-響應鍵盤完成按鈕狀態

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM