2013-03-05 36 views
0

我想補充UITextField輸入到NSMutableArray使用以下IBActions,連接到「沒有結束編輯」的UITextFields的一部分:添加的UITextField輸入的NSMutableArray

- (IBAction) returnKey1 
{ 
    [textInputOne addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; 
    [textInputOne resignFirstResponder]; 
    [players addObject:textInputOne.text]; 
} 

- (IBAction) returnKey2 
{ 
    [textInputTwo addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; 
    [textInputTwo resignFirstResponder]; 
    [players addObject:textInputTwo.text]; 
NSLog(@"array: %@",players); 
} 

,我已經初始化玩家陣列中,像這樣的viewDidLoad部分:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    players = [[NSMutableArray alloc] init]; 
} 

但陣列保持「零」。有人知道怎麼修這個東西嗎?

+2

你已經初始化了玩家嗎? – Ares 2013-03-05 18:53:26

+0

@戰神我相信我有。 – 2013-03-05 19:01:20

+0

@Josh Caswell我已經看過所有這些,他們都沒有解決我的問題。 – 2013-03-05 19:02:05

回答

2

UITextField當用戶點擊返回時不發送任何操作。因此,當用戶點擊返回時,您不會收到「結束編輯」操作。

UITextField當辭職第一響應者時發送「結束編輯」。當用戶通過設置文本字段的代表並執行textFieldShouldReturn:來點擊返回時,您可以讓其退出第一響應者。首先在ViewController.m的頂部找到班級延伸。編輯(或添加它,如果它不存在)申報該類符合UITextFieldDelegate

@interface ViewController() <UITextFieldDelegate> 

@property (nonatomic, strong) IBOutlet UITextField *textFieldOne; 
@property (nonatomic, strong) IBOutlet UITextField *textFieldTwo; 

@end 

接下來,實施textFieldShouldReturn:在班裏以使文本字段辭職第一響應:

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [textField resignFirstResponder]; 
    return NO; 
} 

最後,在您的xib中,將每個文本字段的delegate插座連接到視圖控制器(通常是文件的所有者)。

+0

非常感謝您的幫助,包括所有這些內容,儘管似乎仍然沒有正常運行 – 2013-03-05 22:02:11

2

我希望你已經正確地設置了代表文本框。正如你所分配的玩家陣列中viewDidLoad中嘗試用下面的代碼分配給文本框

- (IBAction) returnKey1 
{ 
    [players addObject:textInputOne.text]; 
} 

- (IBAction) returnKey2 
{ 
    [players addObject:textInputTwo.text]; 
} 

兩個returnKey1 & returnKey2 IBActions真的結束編輯事件。 現在辭職的按鍵板

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [textField resignFirstResponder]; 
    return YES; 
} 

我試過在一個示例項目同樣的事情,效果不錯。