[Cocoa-4th] Chapter2 - Random : Object

1.Cocoa-4th 的 Chapter2 - Random 制作方法

STEP 1

New Application

STEP2

MainMenu.xib

增加控件:2个按钮Square Button (NSButton),1个标签Label (NSTextField)

STEP3

Add Files: Objective-C Class 类型 ,命名为:Random

选择的类型是:subClass of : NSObject

STEP4

在Random的h文件里面

#import <Foundation/Foundation.h>

@interface Ramdon : NSObject
{
	IBOutlet NSTextField *textField;
}

- (IBAction)seed:(id)sender;
- (IBAction)generate:(id)sender;

@end

在Random的m文件里面

#import "Ramdon.h"

@implementation Ramdon

- (IBAction)generate:(id)sender
{
	// Generate a number between 1 and 100 inclusive
	int generated;
	generated = (int)(random() % 100) + 1;
	NSLog(@"generated = %d", generated);
	// Ask the text field to change what it is displaying
	[textField setIntValue:generated];
}

- (IBAction)seed:(id)sender
{
	// Seed the random number generator with the time
	srandom((unsigned)time(NULL));
	[textField setStringValue:@"Generator seeded"];
}

@end

STEP5

点击MainMenu.xib

然后再点击XCode上面的View最左边按钮,

然后在下面的Objective library里面选择Object(NSObject)

然后拖这个控件到当前显示MainMenu.xib的界面设计窗口左边一列里。

说明,这一列最上面是:File‘s owner ,依次是First Responder,Main-Menu, Windows,App delegate,Font manager.

将新的Object放在Font manager下面就可以了。

如图1

然后选中Object,点右边属性:有一个Custom Class ,(是第三个按钮)

然后选中下拉列表,选择上面建立的类Random。

如图:

然后选择Show the connections inspector,(一个向右边的箭头)

然后就可以看到你刚才再Random里面写的函数和变量定义。

这时候最关键一步!

点击变量的textField,拉后面的圆点,到现在的界面xib文件中的标签上,这样就将这标签和这个变量联系在一起了。

点击函数send的后面的圆点,拉扯到界面xib上的按钮上。这样这个按钮就会去执行这个函数。

注意:在程序建立时默认建立的两个文件,一个m一个h,不用在里面增加任何代码。

如图:

然后编译,成功!

如图:

完。

2014-5-29  DMD

祝各位学习XCODE一路顺风。


[Cocoa-4th] Chapter2 - Random : Object,布布扣,bubuko.com

时间: 2024-08-01 12:53:30

[Cocoa-4th] Chapter2 - Random : Object的相关文章

JAVA 复习(Think In Java, 4th)-- Holding Your Object

有时我们会看到像这样的代码 List<Robot> robotList = new ArrayList<Robot>(); 主要原因,是因为这样便於改变实现接口的方式,比如说 ArrayList 我们不要用了,要换成 LinkedList List<Robot> robotList = new LinkedList<Robot>(); 这时只要修改实现方式的地方即可.因为其它地方都是使用接口 API调的,而接口 List 的 API 都是 ArrayList

java笔记--关于Object类与线程相关的方法

关于Object类中的线程方法 Object类是所有Java类的 父类,在该类中定义了三个与线程操作有关的方法,使得所有的Java类在创建之后就支持多线程 这三个方法是:notify(),notifyAll(),wait(),这几个方法都是用来控制线程的运行状态的. 方法列表如下: notify() : 唤醒在此对象监视器上等待的单个线程 notifyAll() : 唤醒在此对象监视器上等待的所有线程 wait() : 在其他线程时调用此对象的notify()或者notifyAll()方法前,导

OpenCV Tutorials &mdash;&mdash; Random generator and text with OpenCV

creating a Random Number Generator object (RNG): RNG rng( 0xFFFFFFFF ); 创建并初始化随机数生成子 create a matrix initialized to zeros (which means that it will appear as black), specifying its height, width and its type: /// Initialize a matrix filled with zeros

obj-c编程15[Cocoa实例02]:KVC和KVO的实际运用

我们在第16和第17篇中分别介绍了obj-c的KVC与KVO特性,当时举的例子比较fun,太抽象,貌似和实际不沾边哦.那么下面我们就用一个实际中的例子来看看KVC与KVO是如何运用的吧. 该例中用到了3种新的控件类型:NSTableView.NSSlider以及简单的NSTextField类型.按说不能再在Random类里添加不沾边的新增功能了,但是为了简单,我还是把所有东西都放在Random类里喽.程序运行时界面如下: 大家可以看到左上角的文本域控件用来显示当前音量,因为它和Random类里的

java笔记--超级类Object多线程的应用+哲学家进餐算法内部类与多线程结合

关于Object类中的线程方法: Object类是所有Java类的 父类,在该类中定义了三个与线程操作有关的方法,使得所有的Java类在创建之后就支持多线程 这三个方法是:notify(),notifyAll(),wait(),这几个方法都是用来控制线程的运行状态的. 方法列表如下: notify() : 唤醒在此对象监视器上等待的单个线程 notifyAll() : 唤醒在此对象监视器上等待的所有线程 wait() : 在其他线程时调用此对象的notify()或者notifyAll()方法前,

OpenCV_Tutorials——CORE MODULE.THE CORE FUNCTIONALITY——Random genenrator and text with OpenCV

2.7 随机产生器和OpenCV当中的文字 目标 在教程中,你会学习到: 1.使用随机数字产生类(RNG)并且如何从均匀分布中获得随机数字. 2.使用OpenCV的putText函数在窗口中显示文字 代码 1.在前一个的教程(Basic Drawing)中,我们画了不同的几何图形,给出了例如坐标(使用Points形式的)的输入参数,颜色,线条粗细,等等.你可能已经注意到我们对于那些参数都是给出了特殊的值. 2.在本教程中,我们打算使用为绘图参数使用随机值.同样,我们打算使用大量的几何图形来填满我

运行时(iOS)

运行时(iOS) 一.什么是运行时(Runtime)? 运行时是苹果提供的纯C语言的开发库(运行时是一种非常牛逼.开发中经常用到的底层技术) 二.运行时的作用? 能获得某个类的所有成员变量 能获得某个类的所有属性 能获得某个类的所有方法 交换方法实现 能动态添加一个成员变量 能动态添加一个属性 能动态添加一个方法 三.案例:运行时获取成员变量名称 1.分析 #import <Foundation/Foundation.h> #import "XMGPerson.h" #im

FindBugs规则整理

FindBugs规则整理 FindBugs是基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug,主要检查bytecode中的bug patterns,如NullPoint空指针检查.没有合理关闭资源.字符串相同判断错(==,而不是equals)等 一.Security 关于代码安全性防护 1.Dm: Hardcoded constant database password (DMI_CONSTANT_DB_PASSWORD) 代码中创建DB的密码时采

生成用户在登录系统是的随机验证码

C# 随机生成码类:ValidateCode.ashx <%@ WebHandler Language="C#" class="ValidateCode" %> using System; using System.Web; using System.Drawing; using System.Web.SessionState; //一般处理程序中使用session,必须实现一个接口 public class ValidateCode : IHttpHa