2011-05-11 46 views
3

這讓我非常沮喪。我是一名初學者程序員,無法弄清楚爲什麼文本沒有被改變。UITextField settext不能正常工作

這裏是我的方法,這是應該設置的UITextField的文字:

-(void)updateDays:(NSInteger)days 
{ 
    NSString* daysString = [[NSString alloc] initWithFormat:@"%d", days]; 
    [daysTextField setText:daysString]; 
    [daysString release]; 
} 

無論出於何種原因,什麼也沒有發生。

幫助appreaciated!

+4

該方法被調用? – 2011-05-11 18:11:16

+2

...並且'daysTextField'確實引用了有問題的UITextField? – Till 2011-05-11 18:13:20

+0

你會在持有TextField的視圖上調用'setNeedsDisplay:YES'嗎? – 2011-05-11 18:22:08

回答

0

檢查是否調用該方法。如果是,請檢查文本框是否設置正確。請檢查IBOutlet連接是否與正確的對象連接。

6

任何時候你有沿線的一種無奈「爲什麼不是這一行工作」,使用調試器,或只是添加的NSLog之前打印出相關的數據:

NSLog(@"updateDays: %@ %@ <= %@", daysTextField, daysTextField.text, daysString); 

然後你就知道(a)線正在執行,(b)變量是你認爲是的那些,(c)這些值是合理的。

+0

+1你可能會認爲你知道你的代碼在做什麼,但只有這樣才能確保它看到它運行。在我看來,所有程序員都應該定期這樣做。 – zpasternack 2011-05-11 22:32:49

0

我也遇到過這個問題。

這是我的代碼:(在viewDidLoad中)

UITextView *tv = [[UITextView alloc]initWithFrame:CGRectMake(0,0,320,50)]]; 
tv.text = @"12345"; 
tv.textColor=[UIColor blackColor]; 
[self.view addSubView:tv]; 

而且文本(12345)不顯示;

最後,我發現,當我設置textColor爲灰色,或任何顏色不是黑色,它的工作;

我認爲這是模擬器的錯誤。

我使用xcode 4.2和iphone5.0simulator。

4

我已經經歷過好幾次了,但我認爲所有這些都是因爲UITextField在那時沒有被初始化。

設置一個斷點並使用調試器到請確保您的UITextField不爲零。您還應該檢查.xib文件和您的代碼之間的連接。