热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

创建一个MacOSX下的CocoaApplication对话框程序

操作系统:MacOSXLion10.7.3开发环境:Xcode4.2.1一.创建一个CocoaApplication项目1.[File]-[New]-

操作系统:Mac OS X Lion 10.7.3

开发环境:Xcode4.2.1

一.创建一个Cocoa Application项目

1.[File]->[New]->[New Project]

选择Mac OS X列表下的Application项,在右边窗口中选择[Cocoa Application]->[Next]

2.输入Product Name:WordSwitch

Company Identifier:rocksea.net.cn

Class Prefix: 

App Store Category:None

->[Next]

3.选择一个项目的保存目录(例如XCode_Data)->[Create]



4.进入Xcode4.2.1编辑界面





5.选择左边Project Navigator窗格中的MainMenu.xib(应用程序的Interface Builder-nib主文件,用于设计用户图形界面),

->选择[Window-WordSwitch]


6.从右下方的Object Library窗格中,往对话框中添加Lable,Text Field,Gradient Button对象,添加方法:在Object Library窗格中,鼠标左键选择一个Object对象,鼠标左键按住不放,往对话框中拖拉。


7.在对话框窗口中选择Lable对象,在右上方的Inspector窗格中选择Attributers Inspector项,将显示Lable对象的属性,修改Title:测试字母如下。类似的方法修改对话框窗口、Text Field、Gradient Button对象的Title属性。


8.创建对话框窗口类(与对话框对象“字母大小写转换”关联起来)

鼠标左键单击左侧的Project Navigator窗格中的[+]按钮,弹出添加新类对话框,

 

选择[Max OS X]->[Cocoa]->[Objective-C class]->[Next],

输入如下内容->[Next]

Class:DialogSwitch       //对话框类名称

Subclass of:NSWindow//从NSWindow窗口类继承


->[Create]->生成DialogSwitch类


9. 关联DialogSwitch和MainMenu.xib中的窗口“字母大小写转换”

选择左边Project Navigator窗格中的MainMenu.xib(应用程序的Interface Builder-nib主文件,用于设计用户图形界面),

->选择[Window-WordSwitch]->在右上方的Inspector窗格中选择Indentity Inspector项->修改Class:NSWindow为Class:DialogSwitch


10. 添加DialogApp类的实例变量和操作

注:实例变量前面的IBOutlet关键字的作用是告诉Interface Builder,此实例变量将被连接到nib中的对象。

注:方法前面的IBAction关键字到作用是告诉Interface Builder,此方法是一个操作,可以被nib中的控件触发。

编辑DialogSwitch.h,内容如下

#import


@interface DialogSwitch :NSWindow


@property (assign)IBOutletNSTextField *textField;//实例变量

- (IBAction)UpperText:(id)sender;                 //操作

- (IBAction)LowwerText:(id)sender;                //操作

- (IBAction)exitApplication:(id)sender;           //操作

- (void)dealloc;                                  //对象销毁方法,释放实例变量的内存


@end





编辑DialogSwitch.m,内容如下

#import"DialogSwitch.h"


@implementation DialogSwitch


@synthesize textField;


- (IBAction)UpperText:(id)sender

{

   NSString *text =textField.stringValue;

    [textFieldsetStringValue:[textuppercaseString]];

}


- (IBAction)LowwerText:(id)sender

{

   NSString *text =textField.stringValue;

    [textFieldsetStringValue:[textlowercaseString]];

}


//退出应用程序

- (IBAction)exitApplication:(id)sender

{

    exit(0);

}




- (void)dealloc

{

    [textFieldrelease];

    [superdealloc];

}


@end



11.关联实例变量和nib(MainMenu.xib)中的对象,关联操作和nib中的控件


选择左边Project Navigator窗格中的MainMenu.xib(应用程序的Interface Builder-nib主文件,用于设计用户图形界面),

->选择[Window-WordSwitch]->在右上方的Inspector窗格中选择Connections Inspector项

连接实例变量textField

入下图所示,鼠标左键点击[Outlets]下面的textField实例变量右边到圆圈,鼠标左键按住不放,拖拉鼠标到nib的的“abcdefg”编辑框上,松开鼠标左键


textField实例变量和“abcdefg”编辑框连接成功,如下图所示

同理连接Received Actions下的exitApplication操作到按钮[退出程序],LowwerText操作到按钮[小写],UpperText操作到按钮[大写],连接成功后入下图所示

运行效果如下





推荐阅读
  • 在VC环境中,掌握高效的调试技巧和高级应用对于提高开发效率至关重要。本文详细介绍了如何通过检查程序中的括号匹配来避免常见的语法错误。具体操作包括将光标置于待检测的括号(如大括号 {}、方括号 [] 和圆括号 ())上,系统会自动高亮显示对应的配对括号,从而帮助开发者快速定位和修复问题。此外,文章还探讨了其他实用的调试工具和方法,如断点设置、变量监视和调用堆栈分析,以全面提升代码调试的准确性和效率。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 本文深入解析了 Apache 配置文件 `httpd.conf` 和 `.htaccess` 的优化方法,探讨了如何通过合理配置提升服务器性能和安全性。文章详细介绍了这两个文件的关键参数及其作用,并提供了实际应用中的最佳实践,帮助读者更好地理解和运用 Apache 配置。 ... [详细]
  • 在Unity中进行3D建模的全面指南,详细介绍了市场上三种主要的3D建模工具:Blender 3D、Maya和3ds Max。每种工具的特点、优势及其在Unity开发中的应用将被深入探讨,帮助开发者选择最适合自己的建模软件。 ... [详细]
  • 结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法
    结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • Go语言实现Redis客户端与服务器的交互机制深入解析
    在前文对Godis v1.0版本的基础功能进行了详细介绍后,本文将重点探讨如何实现客户端与服务器之间的交互机制。通过具体代码实现,使客户端与服务器能够顺利通信,赋予项目实际运行的能力。本文将详细解析Go语言在实现这一过程中的关键技术和实现细节,帮助读者深入了解Redis客户端与服务器的交互原理。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 在幼儿园中,有 \( n \) 个小朋友需要通过投票来决定是否午睡。尽管这个问题对每个孩子来说并不是特别重要,但他们仍然希望通过谦让的方式达成一致。每个人都有自己的偏好,但为了集体和谐,他们决定采用一种最小割的方法来解决这一问题。这种方法不仅能够确保每个人的意愿得到尽可能多的尊重,还能找到一个最优的解决方案,使整体满意度最大化。 ... [详细]
  • 在开发Xamarin.Forms应用程序时,遇到了使用Entity Framework Core 3.0访问SQLite数据库时 `Database.MigrateAsync` 方法调用的问题。本文详细探讨了该问题的根源,并提供了一种有效的解决方案,确保数据库迁移能够顺利执行。此外,还介绍了如何配置和优化EF Core以提高应用性能和稳定性。 ... [详细]
  • 在主从复制架构中,Bingo_MySQL 同步工具的应用与优化具有重要意义。为确保高效同步,建议使用相同或兼容的 MySQL 版本,并确保两台服务器位于同一局域网内,且网络连接畅通无阻。若无法 ping 通,请检查 IP 配置及防火墙设置,以保证网络连通性。此外,合理的配置参数和定期维护也是提升同步性能的关键因素。 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 浅析PHP中$_SERVER[
    在PHP后端开发中,`$_SERVER["HTTP_REFERER"]` 是一个非常有用的超级全局变量,它可以获取用户访问当前页面之前的URL。本文将详细介绍该变量的使用方法及其在不同场景下的应用,如页面跳转跟踪、安全验证和用户行为分析等。通过实例解析,帮助开发者更好地理解和利用这一功能。 ... [详细]
  • 本文详细解析了 MySQL 5.7.20 版本中二进制日志(binlog)崩溃恢复机制的工作流程。假设使用 InnoDB 存储引擎,并且启用了 `sync_binlog=1` 配置,文章深入探讨了在系统崩溃后如何通过 binlog 进行数据恢复,确保数据的一致性和完整性。 ... [详细]
author-avatar
新起点新娘妆
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有