2012-07-23 54 views
0

我正在嘗試爲每個文本字段設置撤消和重做,並且不確定如何確定如何確定哪個文本字段是第一響應者。從工具欄確定文本字段IOS

是否有一個參數可以傳遞到工具欄按鈕調用的方法中,還是需要做一些奇特的步法?

回答

1

這是一個想法:

如果viewController成爲每個textField的代表,那麼viewController會得到通知,因爲每個textField的價值變化,或成爲第一個響應者。

採納代表團,你會做:

@interface MyViewController : UIViewController <UITextFieldDelegate> 
@end 

@implementation 
- (void)someMethod{ 
    // for a series of textfields 
    myTextfield1.delegate = self; 
    myTextfield1.delegate = self; 
    // or you hook the delegate in IB 
} 

// then you get notified 
- (void)textFieldDidBeginEditing:(UITextField *)textField { 
    // textField here that gets passed in as an argument is the first responder 
    // if you have, let's say tag number for each 
    NSInteger activeTextFieldTag = textField.tag; 
} 
@end 

下面是引用UITextFieldDelegate Protocol

+1

這是一個很好的答案。我們使用了相似的技術。除了文本字段上的唯一標籤之外,我們還向有問題的視圖控制器添加了一個私有的'UITextField'屬性來跟蹤當前編輯的文本字段(屬性被分配在-textFieldDidBeginEditing :)中。 – 2012-07-23 19:08:06

+0

我沒有去標記文本字段,但這工作得很好。我只是將當前的文本字段撤消管理器變成了伊娃,並且在完成編輯時將伊娃設置爲零。 – RMDan 2012-07-23 19:39:20