2014-02-08 57 views
0

我在自定義單元格內有一個UITextField。在viewController中有一個按鈕,當單元格中的UITextField中有文本時,我想將其變爲紅色。當UITextField在viewController中有,但當UITextView在單元內時,我創建了這樣的按鈕。我將如何去做這件事。從單元格內的UITextField獲取信息

這裏是我會怎麼做這是的UITextField是的viewController裏 -

- (void)textFieldDidChange:(id)sender { 

    if (self.schoolText.text.length > 0) { 
     self.navigationItem.rightBarButtonItem.tintColor = [UIColor redColor]; 
    }else{ 

     self.navigationItem.rightBarButtonItem.tintColor = [UIColor colorWithRed:193/255.5 green:193/255.0 blue:193/255.0 alpha:1.0]; 

    } 

} 

回答

0

您可以使用下面的UITextFieldDelegate方法來檢查長度

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

一件事需要注意的是,上述方法在文本字段實際更新其文本之前被調用,所以爲了克服這一點,您可以使用以下行。

[textField.text stringByReplacingCharactersInRange:range withString:string].length

0

要清楚,我假設你已經創建了一個自定義的UITableViewCellUITextField因爲它命名爲theTextField出口。並且您已將故事板中的UITextField連接到您的自定義單元格。

現在,當你填充數據進入細胞中 -tableView: cellForRowAtIndexPath:你必須做的兩者之一:如果您想更改按鈕的顏色,此刻該文本的變化,使用

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:UITextFieldTextDidChangeNotification object:cell.theTextField]

textChanged:是這樣的方法:

- (void) textChanged:(NSNotification *) notification

,或者如果委託是不夠的,只使用cell.theTextField.delegate = self;

就是這樣

相關問題