• iPhone应用程序开发基础之一: IBOutlet与IBAction


    在图形界面编程时,解决的第一问题就是如何将静态界面与代码关联起来,或者说是代码如何与界面上的对象

    通信, 代码如何操作界面上的对象。在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平台应用开发的第一步。

  • 相关阅读:
    linux g++编译dxf文件C++解析库dxflib
    linux g++使用总结
    一个使用three.js的网页DXF文件查看器dxf viewer
    node.js教程基础:node.js访问操作系统
    node.js教程基础:node.js全局对象
    node.js教程基础:node.js命令行选项
    node.js教程基础:node.js包管理器
    node.js教程基础:node.js REPL
    node.js教程基础:第一个node.js程序
    node.js教程基础:node.js安装
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4864375.html
Copyright © 2020-2023  润新知