Cocoa学习之路 屏幕坏点检查程序开发实例

移动开发 iOS
本文介绍的是Cocoa学习之路 屏幕坏点检查程序开发实例,先来理解屏幕坏点检查程序的原理,那么我们先来看内容。

Cocoa学习之路 屏幕坏点检查程序开发实例是本文要介绍的内容,不多说,直接进入话题。这个屏幕坏点检查程序的原理是:用 red,green,blue,black,white 五种颜色以全屏模式显示,从而检测屏幕是否存在坏点、暗点、亮点。在全屏模式下单击切换到下一个颜色,双击退出。主要学习Cocoa创建一个全屏窗口和事件处理,主要参考资料有:

RoundTransparentWindowNSWindow NSEvent 。

Cocoa学习之路 屏幕坏点检查程序开发实例

cocoa中全屏窗口需要继承NSWindow重写- (id)initWithContentRect,设置windowStyle为NSBorderlessWindowMask的无边界窗口

  1. - (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag {  
  2.     // Using NSBorderlessWindowMask results in a window without a title bar.  
  3.     self = [super initWithContentRect:contentRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];  
  4.     if (self != nil) {  
  5.         [self setLevel:NSStatusWindowLevel];  
  6.         [self setBackgroundColor:[NSColor redColor]];  
  7.  
  8.         NSRect screenFrame = [[NSScreen mainScreen] frame];  
  9.         [self setFrame:NSMakeRect(0, 0, screenFrame.size.width, screenFrame.size.height) display:YES animate:YES];  
  10.     }  
  11.     return self;  

如果想要全屏窗口中响应鼠标事件,必须重写一下- (BOOL)canBecomeKeyWindow,使其总是返回YES:

  1. - (BOOL)canBecomeKeyWindow  
  2. {  
  3.     return YES;  

在 InterfaceBuilder 中为窗口绑定Class为重写的全屏窗口Class就可以了。这样一个全屏窗口就建立了,还需要创建两个事件来处理颜色切换或关闭全屏窗口。需要在全屏窗口中单击时切换到下一个颜色,如果是双击时就退出全屏窗口。mouseUp事件处理颜色切换,mouseDown事件点击两次的时候退出全屏窗口。

  1. - (void)mouseUp:(NSEvent *)theEvent {  
  2.     NSColor *wColor = [self backgroundColor];  
  3.     if(wColor == [NSColor redColor]){  
  4.         [self setBackgroundColor:[NSColor greenColor]];  
  5.     }  
  6.     else if(wColor == [NSColor greenColor]){  
  7.         [self setBackgroundColor:[NSColor blueColor]];  
  8.     }  
  9.     else if(wColor == [NSColor blueColor]){  
  10.         [self setBackgroundColor:[NSColor blackColor]];  
  11.     }  
  12.     else if(wColor == [NSColor blackColor]){  
  13.         [self setBackgroundColor:[NSColor whiteColor]];  
  14.     }  
  15.     else {  
  16.         [self orderOut:nil]; // 隐藏窗口  
  17.     }  
  18. }  
  19. - (void)mouseDown:(NSEvent *)theEvent {  
  20.     // 判断双击  
  21.     if ( [theEvent clickCount] == 2 )  
  22.     {  
  23.         [self orderOut:nil]; // 隐藏窗口  
  24.     }  

相关附件:源代码下载  、程序下载

小结:Cocoa学习之路 屏幕坏点检查程序开发实例的内容介绍完了,希望本文对你有所帮助!

转自:http://www.uedidea.com/cocoa-screen-check.html

 

责任编辑:zhaolei 来源: Cocoa China
相关推荐

2011-07-20 10:31:49

Cocoa Slider 颜色

2011-05-05 17:13:25

故障笔记本

2019-06-24 09:27:56

DebianUbuntu程序包

2011-07-25 14:32:40

Cocoa 框架 函数

2011-07-07 13:51:24

Cocoa 框架

2011-06-27 16:00:34

视频教程Cocoa TouchiOS应用

2011-07-22 15:50:06

Cocoa MVC 视图

2011-07-26 10:42:00

Cocoa Cocoa2d 游戏

2011-07-28 10:34:38

Cocoa 程序 启动

2011-07-26 15:29:36

Cocoa 模式

2011-07-25 13:15:34

Cocoa MVC 架构

2011-06-15 16:11:51

UIKitCocoa TouchiOS

2011-06-17 15:57:46

CocoaXcode苹果

2011-08-11 15:46:55

CocoaCocoa Touch框架

2011-07-26 15:14:24

苹果 Cocoa 内存

2019-08-12 07:45:44

Linux脚本shell

2011-05-31 15:41:00

Cocoa TouchCocoaiOS

2013-05-27 13:37:42

Android开发移动开发屏幕截图

2011-08-10 18:37:32

CocoaMac OS X

2011-08-15 15:26:20

iPhone开发CocoaXML
点赞
收藏

51CTO技术栈公众号