2013-05-29 45 views
4

我的應用程序有一個奇怪的問題。在閱讀了所有關於幾乎相同問題的問題之後,我仍然無法找到解決問題的方法。 我使用UITableViewController來顯示KoreanFood的詳細信息。第一個單元格是一個帶有Image和兩個UITextField的自定義UITableViewCell(OverviewCell),我在Storyboard(AutoLayout)中創建和佈局了這兩個UITextField。它看起來像這樣UITableViewCell內的UITextField不會成爲第一響應者

https://dl.dropboxusercontent.com/u/28177144/Screen%20Shot%202013-05-29%20at%2023.39.46.png (抱歉,我不能嵌入圖片,但我還沒有10聲譽尚)

我的子類的UITableViewCell這樣的:

OverviewCell.h 
@interface OverviewCell : UITableViewCell 
@property (strong, nonatomic) IBOutlet UITextField *englishTitleTF; 
@property (strong, nonatomic) IBOutlet UITextField *koreanTitleTF; 
@property (strong, nonatomic) IBOutlet UIImageView *myImageView; 
@property (strong, nonatomic) UIImage *thumbnail; 

我在故事板文本字段設置爲啓用/ UserInteractionenabled和委託是我的TVC。當我創建的細胞我也爲此在代碼:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (indexPath.section == GENERAL_SECTION) { 
     static NSString *overviewCellID = @"overviewCell"; 
     OverviewCell *overviewCell = [tableView dequeueReusableCellWithIdentifier:overviewCellID forIndexPath:indexPath]; 

     overviewCell.englishTitleTF.text = self.generalInfo.titleEnglish; 
     overviewCell.koreanTitleTF.text = self.generalInfo.titleKorean; 
     overviewCell.englishTitleTF.enabled = YES; 
     overviewCell.koreanTitleTF.enabled = NO; 
     //BOOL test = [overviewCell.englishTitleTF becomeFirstResponder]; 
     overviewCell.koreanTitleTF.delegate = self; 
     overviewCell.englishTitleTF.delegate = self; 

     UIImageView *imageView = [[UIImageView alloc] initWithImage:self.generalInfo.thumbnail]; 
     overviewCell.myImageView = imageView; 
     overviewCell.myImageView.frame = CGRectMake(25, 25, 95, 95); 
     [overviewCell addSubview:overviewCell.myImageView]; 

     return overviewCell; 
    } 

與布爾的評論是NO,我只是不知道爲什麼......當我設置文本,它的正確顯示,我知道奧特萊斯設置和細胞不是零(我檢查了)。 爲什麼這個* *不成爲第一響應者? 我也嘗試了一些建議,如點擊測試或實現setSelected:/ setEditing:方法的OverviewCell子類。但是,這裏的textField成爲FirstFoundResponder也不會改變任何內容。

任何幫助將不勝感激,我對此絕望。

回答

4

視圖不能成爲第一個響應,直到它被添加到響應者鏈,當視圖被添加因爲這是在應用程序對象的窗口列表的窗口中的視圖的子視圖,其自動發生。換句話說,你的單元格還沒有添加到表格視圖中,所以它沒有連接任何東西,因此不能成爲第一響應者。

嘗試發送becomeFirstResponder從表視圖完成加載其單元格後調用的方法。當然,不這樣做:

overviewCell.koreanTitleTF.enabled = NO; 
+0

嘿jlehr,謝謝你的提示,但我有一個名爲從firstresponder成爲幾乎無處不在,inuding的viewDidLoad答didSelectRowAtIndexPath方法,所以電池應該在響應鏈嗎? – fruitcoder

+0

您發佈的方法是從故事板中取出單元格。此時單元格在內存中,但尚未添加到表格視圖中。所以不,它不在響應者鏈中,因此對'becomeFirstResponder'的調用沒有效果。 – jlehr

+0

但是當我調用didSelectRowAtIndexPath成爲FirstRepsonder時,它應該是:) – fruitcoder

相關問題