• IBOutlet和IBAction


    Xcode不会自动像VS一样布局界面的时候自动生成一份对象

    它实现了前台界面和后台代码的弱关系,需要手工方式来实现对象的挂接

    原则:当UI类文件需要和一个界面的对象或事件直接交互的时候,使用IBOutlet、IBAction关键字来告知编译器。

    下面一段英文资料
    Making the AppController @interface
    We’ll use the Interface Builder application to lay out the window’s contents and hook up various
    connections between AppController and the user interface controls. Interface Builder
    is also used to lay out iPhone applications, so time in Interface Builder is well spent no matter
    which platform you’ll end up programming for. We’ll add stuff to the AppController
    class, and then Interface Builder will notice our additions and let us build the user interface.
    First, we’ll set up the header file for AppController:
    #import <Cocoa/Cocoa.h>
    @interface AppController : NSObject {
    IBOutlet NSTextField *textField;
    IBOutlet NSTextField *resultsField;
    }
    - (IBAction) uppercase: (id) sender;
    - (IBAction) lowercase: (id) sender;
    @end // AppController


    There are two new quasi- keywords in there: IBOutlet and IBAction. These are actually just
    #defines provided by the AppKit. IBOutlet is defined to be nothing, so it disappears when
    we compile. IBAction is defined to be void, which means the return type of the methods
    declared in AppController will be void (that is, returning nothing).
    If IBOutlet and IBAction don’t do anything, why are they even there? The answer is that
    they’re not there for the compiler: IBOutlet and IBAction are actually flags to Interface
    Builder, as well as the humans who read the code. By looking for IBOutlet and IBAction,
    Interface Builder learns that AppController objects have two instance variables that can
    be connected to stuff, and AppController provides two methods that can be the target of
    button clicks (and other user interface actions). We’ll talk about how this works in a little bit.
    In Interface Builder, we’ll connect the textField instance variable to an NSTextField
    object. This text field is where users will type strings to be converted, which is the typical
    role for an NSTextField.
    resultsField will be connected to a read- only NSTextField. When in read- only mode,
    an NSTextField acts like a text label. This text label is where the uppercase or lowercase
    version of the string will be displayed.

    这段来自《Learn.Objective-C.on.the.Mac》英文版,14章节。
    蓝色部分是个人认为关键的地方

  • 相关阅读:
    HttpModule,HttpHandler,HttpHandlerFactory
    IHttpModule实现URL重写
    HttpModule与HttpHandler详解
    IHttpModule接口
    VS中新建网站和新建项目web应用程序的区别?(实际应用总结一点)
    slf4j简介
    SQL条件表达式
    Windows命令查看文件MD5
    Final对象
    Seasar2框架:AOP
  • 原文地址:https://www.cnblogs.com/GoGoagg/p/2144407.html
Copyright © 2020-2023  润新知