2013-06-24 50 views
0

我試圖將代理設置爲我的UITextfield集合,以便我可以在所有文本字段上調用resignFirstResponder。我試過的沒有迴應。Objective-C設置集合的代理

@property (nonatomic, weak) IBOutletCollection(UITextField) NSMutableArray *textFields; 

- (void)viewDidLoad 
{ 
    [_textFields enumerateObjectsUsingBlock:^(UITextField *textfield, NSUInteger idx, BOOL *stop) 
    { 
     textfield.delegate=self; 
    }]; 
} 

- (BOOL) textFieldShouldReturn:(UITextField *)textFields 
{ 
    NSLog(@"textFieldShouldReturn Fired :)"); 
    [_textFields enumerateObjectsUsingBlock:^(UITextField *textfield, NSUInteger idx, BOOL *stop) 
    { 
     [textfield resignFirstResponder]; 
    }]; 

    return YES; 
} 
+0

委託方法不會被調用?集合中是否有文本字段? – Wain

+0

什麼不起作用?無論代表他們的代表文本字段應該辭職。正如Wain所說,確保你的收藏中實際上有文本字段。 – Firo

+0

你確定這些文本字段存在? :) – Undo

回答

0

您是否在.h中添加了UITextFieldDelegate

@interface MyVC : UIViewController <UITextFieldDelegate> 

而且也許嘗試:

for (UITextField __strong *field in self.textFields) 
    field.delegate = self;