標籤:style blog http os io 檔案 art 問題
在圖形介面編程時,解決的第一問題就是如何將靜態介面與代碼關聯起來,或者說是代碼如何與介面上的對象
通訊, 代碼如何操作介面上的對象。在iPhone平台上,引入了IBOutlet與IBAction。通過在變數前增加IBOutlet
來說明該變數將與介面上的某個UI對象對應,在方法前增加IBAction來說明該方法將與介面上的事件對應.
下面通過一個串連網路伺服器(NetworkConnection)的例子來說明IBOutlet與IBAction。
介面上有host 與 port 的Text Field UI對象,一個Button對象。
所以代碼中需要定義兩個IBOutlet變數,分別用來定義host與port; 一個IBAction方法,用來發起串連動作。
在NetworkConnectionViewController.h檔案中:
定義變數:
@interface NetworkConnectionViewController : UIViewController {
UITextField *host;
UITextField *port;
}
將這兩個變數說明為IBOutlet變數:
@property(nonatomic, retain) IBOutlet UITextField *host;
@property(nonatomic, retain) IBOutlet UITextField *port;
在NetworkConnectionViewController.m檔案中增加:
@synthesize host;
@synthesize port;
開啟NetworkConnectionViewController.xib檔案,拖兩個Text Field對象到上面。
按住Ctrl鍵,拖拽File‘s Owner到Text Field之上,會彈出Outlets挑選清單,在列表中可以看到host與port。
分別為兩個Text Field選擇Outlet變數。這樣做了以後,介面上的Text Field對象就與程式中定義的變數就關聯起來,
當改變變數的屬性時,就會顯現在介面上。
為了檢驗變數是否與介面對象關聯,在viewDidLoad方法中給變數付值然後編譯運行。
- (void)viewDidLoad
{
[super viewDidLoad];
host.text = @"192.168.1.100";
port.text = @"8080";
}
運行後,可以在介面的Text Field中看到這些值,說明變數與介面對象關聯正確。從而就可以在介面中看到變數的值。
在NetworkConnectionViewController.h檔案中增加一個IBAction方法:
-(IBAction)connectNetwork;
在NetworkConnectionViewController.m檔案中實現該方法:
-(IBAction)connectNetwork
{
UIAlertView *alter = [[UIAlertView alloc] initWithTitle: @"Connection Network" message: @"sending command to the server" delegate: self cancelButtonTitle: @"OK" otherButtonTitles: nil];
[alter show];
[alter release];
//connect network
//............
}
開啟NetworkConnectionViewController.xib,拖一個Round Rect Button到上面。
然後按住Ctrl鍵,拖拽該button到File‘s Owner上,在彈出的IBAction列表中
選擇connectNetwork。這樣當該button被按下彈起後就會調用connectNetwork方法。
IBOutlet與IBAction是iPhone應用開發的基礎,是成功邁向iPhone平台應用開發的第一步。
原文地址:http://www.cnblogs.com/martin1009/archive/2012/02/03/2337431.html