Cocoa 静态显示一个对话框2 [帮大家复习一次]
来源:互联网 发布:mac桌面新建文件夹 编辑:程序博客网 时间:2024/05/22 05:13
第一步:
在你建立的工程里面:
Add Files:选择:
OX S-> Cocoa->Objective-C Class
(1)输入文件名(例如:Form_1)
(2)选中 with XIB
(3)下拉列表里面选择:Subclass of :NSWindowController
然后在Form_1.m里面输入:
/********************************************
Function : init (显示一个窗口,需要初始化)
[手动增加此函数]
*********************************************/
- (id)init
{
//以下的名称是*.xib文件的名称,扩展名不要写在里面(由于在添加窗口的时候,选中with xib就会增加一个同名的窗口文件)
if (![superinitWithWindowNibName:@"Form_1"])
{
returnnil;
}
return self;
}
// 以下三个函数是为了在其他程序里可以显示本窗口 +++
// 显示窗口
- (IBAction)showWindow:(id)sender
{
[[NSApplicationsharedApplication]runModalForWindow:self.window];
}
// 关闭窗口:只有关闭了这个窗口,才会显示其他的窗口,达到静态显示本窗口非目的,否则不能显示为第一个窗口TOP
-(void)closeModalWindow:(id)sender
{
[[NSApplicationsharedApplication]stopModal];
}
// 作用同上
- (void)windowWillClose:(NSNotification *)notification
{
[selfperformSelectorOnMainThread:@selector(closeModalWindow:)withObject:nilwaitUntilDone:NO];
}
// 以下三个函数是为了在其他程序里可以显示本窗口 ---
接着:在调用的程序里面:
H里面要申明窗口变量
#import <Cocoa/Cocoa.h>
#import "Form_1.h" //一定要在这里引用
@interface EDUCATIONDocument :NSPersistentDocument
{
Form_1 *m_form1;//需要在这里申明变量
}
@end
在M的调用函数里面写入
- (IBAction)OnBT_ShowADialog:(id)sender
{
if(!m_form1)
{
m_form1 = [[Form_1alloc]init];//Test OK!
// m_form1 = [Form_1 new]; //Test OK!
//以上2种方法测试都OK!
}
[m_form1showWindow:sender];
}
完整的代码是
Form_1.h
#import <Cocoa/Cocoa.h>@interface Form_1 : NSWindowController@end
Form_1.m
#import "Form_1.h"@interface Form_1 ()@end@implementation Form_1// This function was created by XCode- (id)initWithWindow:(NSWindow *)window{ self = [super initWithWindow:window]; if (self) { // Initialization code here. } return self;}// This function was created by XCode- (void)windowDidLoad{ [super windowDidLoad]; // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.}/******************************************** Function : init (显示一个窗口,需要初始化) [手动增加此函数]*********************************************/- (id)init{ //以下的名称是*.xib文件的名称,扩展名不要写在里面(由于在添加窗口的时候,选中with xib就会增加一个同名的窗口文件) if (![super initWithWindowNibName:@"Form_1"]) { return nil; } return self;}// 以下三个函数是为了在其他程序里可以显示本窗口 +++// 显示窗口- (IBAction)showWindow:(id)sender{ [[NSApplication sharedApplication] runModalForWindow:self.window];}// 关闭窗口:只有关闭了这个窗口,才会显示其他的窗口,达到静态显示本窗口非目的,否则不能显示为第一个窗口TOP-(void)closeModalWindow:(id)sender{ [[NSApplication sharedApplication] stopModal];}// 作用同上- (void)windowWillClose:(NSNotification *)notification{ [self performSelectorOnMainThread:@selector(closeModalWindow:) withObject:nil waitUntilDone:NO];}// 以下三个函数是为了在其他程序里可以显示本窗口 ---@end
调用代码如上已经写好。
在M文件里面
- (IBAction)OnBT_ShowADialog:(id)sender
{
if(!m_form1)
{
m_form1 = [[Form_1alloc]init];//Test OK!
// m_form1 = [Form_1 new]; //Test OK!
//以上2种方法测试都OK!
}
[m_form1showWindow:sender];
}
H文件里面申明#import <Cocoa/Cocoa.h>
#import "Form_1.h"
@interface EDUCATIONDocument :NSPersistentDocument
{
Form_1 *m_form1;
}
@end
以上代码经本人测试验证运行成功!
完!
补充:有时候掉用启动不起来,可以用这种方式调用
// if (m_form3 == nil)
// {
// m_form3 = [form3 new];
// [m_form3 showWindow:self];
// }
// else
// {
// [m_form3 showWindow:self];
// }
- Cocoa 静态显示一个对话框2 [帮大家复习一次]
- Cocoa 静态显示一个对话框
- 记一次帮朋友写的网页。主要是显示部分图片,简单的使用定时器,主要复习
- 如何从一个应用程序跳转到另一个应用程序(纯属为自己复习方便,希望也可以帮到大家)
- 请大家帮我解决一个问题
- [VB.NET]最后一个问题,大家再帮兄弟一把!
- 大家可不可以帮我解一个PPT,谢谢!
- 一次只显示一个菜单。
- 在一个对话框中显示另一个对话框
- 大家好!我是一个菜鸟!!遇到问题了,请教大家帮我一下,急,谢谢了!!!
- 对话框上显示一个菜单
- 希望大家帮我
- 和大家分享一个显示系统时间
- 主题:大家好!哪位高手帮我解答一个c#.net方面的问题,谢谢
- 我编了一个赫夫曼编译器的程序,请大家帮我调调。
- 大家好,请VB的高手帮我解决一个关于导入EXCEL数据库的问题
- 一个C语言的原代码,有8处错误,望大家帮我修改一下。
- 请大家帮我解决一个简单的win-tc中的错误
- Paid Roads(DFS)
- 大话重构连载7:重构是一系列的等量变换
- Relocations in generic ELF (EM: 40) ../h264-lib/build/obj/cavlc.o: could not read symbols: File in
- 法国恢复鬼混
- mybatis基本标签
- Cocoa 静态显示一个对话框2 [帮大家复习一次]
- 分行风险费和风险进行翻译返回fhjyj电话费的环境法第一款
- eclipse插件安装Eclipse HTML Editor
- Java访问控制权限
- 分行风险费和风险进行翻译返回fhjyj电话费的环境法第一款
- Eclipse 开发WEB项目所遇问题 WebContent WebRoot
- 是肉體愉悅日土人生英特億
- 学习
- 数的划分