2011-10-27 49 views
0

我在viewDidLoad中添加了一個文本字段,但它沒有顯示在屏幕上。無法在屏幕上顯示文本字段

這裏的.H

#import <UIKit/UIKit.h> 
@interface SecondViewController : UIViewController{ 
    UITextField *tfText; 
} 
@property (nonatomic, retain) UITextField *tfText; 
@end 

這裏的.M

- (void)viewDidLoad{ 
    [super viewDidLoad];  

    [self.view setBackgroundColor:[UIColor lightGrayColor]]; 

    tfText.frame = CGRectMake(65, 100, 200, 50); 
    tfText.backgroundColor = [UIColor whiteColor];  
    [tfText setTextColor:[UIColor blackColor]]; 
    tfText.placeholder = @"Test"; 
    [tfText setBorderStyle:UITextBorderStyleNone]; 
    [self.view addSubview:tfText]; 
} 

回答

3

看來你需要初始化對象......我的意思是

UITextField *newTextField = [[UITextField alloc] init]; 
self.tfText = newTextField; 
//.... 
//all your code here 
//.... 
[newTextField release]; 

不要忘記釋放你實例上的dealloc方法。

0

D33pN16h7是正確的,你需要實例化你的對象。但是,我會做一些與上述不同的內容,沒有理由創建UITextField實例,然後將實例設置爲它。

self.tfText = [[UITextField alloc] init];

+0

這是一個問題,因爲產生了內存泄漏,則「ALLOC初始化」遞增保留計數中一個,並且屬性setter(self.tfText「)也遞增保留計數,這樣我顯示代碼你是實例化對象的正確方法。乾杯! – D33pN16h7

+0

了不起的信息,謝謝! – Osiris

0
UITextField entered2 = [[UITextField alloc] initWithFrame:CGRectMake(120.0, 125.0, 150.0, 25.0)]; 
[entered2 setBackgroundColor:[UIColor whiteColor]]; 
[email protected]"Active";  
[self.view addSubview:entered2]; 
[entered2 release];