`
runfeel
  • 浏览: 936187 次
文章分类
社区版块
存档分类
最新评论

【Cocoa(mac) Application 开发系列之三】自定义NSView并绘制一些常见的图形及字符串;

 
阅读更多


本站文章均为李华明Himi原创,转载务必在明显处注明:
转载自【黑米GameDev街区】原文链接:http://www.himigame.com/mac-cocoa-application/908.html

          ☞ 点击订阅 ☜
本博客最新动态!及时将最新博文通知您!

不多说,比较简单,直接给出源码,大家作为参考吧。

对于Cocoa application 话说回来比较easy,如果之前你接触过iOS 的IB的话 ,基本上没什么可说的,上手很快;

因此对于Cocoa Application 不会太快的更新,接着Himi将对之前做的动编彻底的更新一版;后期有时间将继续更新此系列;

言归正传,对于自定义NSView上一篇已经介绍了,而且本篇主要继续深入NSView的drawRect进行继续研究,示例代码如下,比较容易理解,而且都已备注的很清楚;


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//
// HView.m
//
// Created by Himi on 12-6-7.
// Copyright (c) 2012年 Himi. All rights reserved.
//
#import "HView.h"
@implementation HView
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect
{
//-----------获取整个MyView尺寸------------
NSRect screen = [self bounds];
int SW = screen.size.width;
int SH = screen.size.height;
//-----------设置整个MyView的颜色------------
[[NSColor grayColor] set];
//-----------填充整个MyView---------------
NSRectFill(screen);
//-----------绘制字符串---------------
NSString * strH= @"基础绘制 --By Himi";
//--绘制不带属性字符串
[strH drawAtPoint:NSMakePoint(SH*0.5, SH-30) withAttributes:NULL];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//--绘制带属性字符串
NSMutableDictionary *md = [NSMutableDictionary dictionary];
[md setObject:[NSFont fontWithName:@"Times" size:20] forKey:NSFontAttributeName];
[strH drawAtPoint:NSMakePoint(SH*0.5, SH-70) withAttributes:md];
//--------绘制矩形----
NSRect rect1 = NSMakeRect(SH*0.5, SH-100, 30, 20);
NSRect rect2 = NSMakeRect(SH*0.5, SH-130, 30, 20);
//填充矩形
[NSBezierPath fillRect:rect1];
//绘制矩形
[NSBezierPath strokeRect:rect2];
//--------绘制线条(十字线)----
[[NSColor greenColor] set];
NSPoint bm =NSMakePoint(SW*0.5, 0);
NSPoint top =NSMakePoint(SW*0.5, SH);
NSPoint lf =NSMakePoint(0, SH*0.5);
NSPoint rt =NSMakePoint(SW, SH*0.5);
[NSBezierPath strokeLineFromPoint:bm toPoint:top];
[NSBezierPath strokeLineFromPoint:lf toPoint:rt];
//-------绘制椭圆
[[NSColor redColor] set];
[[NSBezierPath bezierPathWithOvalInRect:screen] stroke];
[self setNeedsDisplay:YES];// 强制绘画
//【备注】
// CGContextRef ref = [[NSGraphicsContext currentContext] graphicsPort];// 获取画布
// CGContextFlush(ref);//刷新画布
}
-(void) mouseDragged:(NSEvent *)theEvent{
NSPoint mp = [self convertPoint:[theEvent locationInWindow] fromView:nil];// 鼠标新坐标
NSLog(@"mouseDragged~%f,%f",mp.x,mp.y);
}
-(void) mouseUp:(NSEvent *)theEvent{
NSLog(@"mouseUp");
}
-(void) mouseDown:(NSEvent *)theEvent{
NSLog(@"mouseDown");
}
@end

注意的是:备注这两行代码是直接通过获取画布,更新画布进行绘制,其中绘制代码省略,比较容易,这里起个头,推荐使用此种方式绘制;对于做游戏的我们,对于画布刷新画布我想是再熟悉不过了!

运行截图:

分享到:
评论

相关推荐

    cocoa、mac拖动文件url到NSView中

    在Mac OS X操作系统中,开发基于Cocoa的应用程序时,我们经常会遇到需要处理用户通过拖放操作(Drag and Drop)来交互文件的情况。这个过程涉及到`NSView`类的一个重要特性,即支持拖放操作。在本文中,我们将深入...

    Custom-NSView:自定义NSView

    在iOS和macOS开发中,`NSView`是Cocoa框架中的基础组件,它负责在屏幕上绘制用户界面。自定义`NSView`是一项常见的任务,允许开发者创建具有独特外观和行为的视图,以满足特定应用程序的需求。本篇文章将深入探讨...

    苹果开发之Cocoa编程(第三版)(中文版)

    本书《苹果开发之Cocoa编程(第三版)(中文版)》会详细讲解这些概念和技术,并通过实例引导读者逐步掌握Cocoa编程。无论你是初学者还是经验丰富的开发者,都能从中获得宝贵的指导,提升你的苹果平台应用开发技能。...

    iPhone开发基础 cocoa入门

    Cocoa是Apple为Mac OS X和iOS平台提供的一套强大的应用开发框架。对于iPhone开发来说,掌握Cocoa是必不可少的基础之一。本章节将从Cocoa的定义出发,深入探讨其在iPhone开发中的地位与作用。 - **Cocoa定义**:...

    创建一个Mac OS X 下的Cocoa Application对话框程序

    在Mac OS X操作系统中,开发Cocoa应用程序是构建本地化桌面应用的主要方式。本文将详细介绍如何使用Xcode 4.2.1这个强大的集成开发环境(IDE)来创建一个简单的Cocoa Application,该程序能够实现字母大小写的转换...

    Cocoa绘制渐进色文字

    在iOS和macOS开发中,Cocoa框架是Apple公司提供的一种强大的UI开发工具,它允许开发者创建各种各样的用户界面。在Cocoa编程中,我们经常需要对文本进行各种定制化处理,比如改变颜色、字体或者添加特殊效果。在本...

    Wrox.Professional.Cocoa.Application.Security.Jun.2010.rar

    《Wrox Professional Cocoa Application Security Jun 2010》这本书主要关注的是苹果平台上的Cocoa应用程序的安全性。Cocoa是Apple macOS和iOS操作系统的核心开发框架,用于构建原生的、高性能的应用程序。这本书...

    Learn Cocoa on the Mac, 2nd Edition

    ### 学习Cocoa开发Mac应用 ——《Learn Cocoa on the Mac, 2nd Edition》 #### 必须热爱Cocoa 本章介绍了为何选择Cocoa作为开发Mac应用程序的首选框架,并简要概述了Cocoa的基本概念。Cocoa是苹果为Mac OS X提供的...

    苹果开发之Cocoa编程原书第4版

    Cocoa编程是苹果平台开发的核心技术,主要用于构建Mac OS X和iOS的应用程序。在苹果开发之Cocoa编程原书第4版中,你将深入学习如何利用Objective-C或Swift语言来构建高效、功能丰富的应用程序。这本书是mac app...

    苹果开发之Cocoa编程

    Cocoa框架是Apple为Mac OS X和iOS提供的软件开发框架之一,它包含了一系列APIs,用于构建应用程序界面和服务。通过本教程的学习,开发者可以掌握如何利用Cocoa框架开发高质量的应用程序。 ### 一、Cocoa概述 Cocoa...

    Cocoa Programming for Mac OS X

    - **Foundation 框架**:这是 Cocoa 的基础框架之一,包含了大量处理基本数据类型(如字符串、数组等)和文件管理等功能的类。它是 Cocoa 应用程序的核心组成部分。 - **AppKit 框架**:专注于图形用户界面的构建,...

    苹果开发之Cocoa编程 (原书第4版)

    Foundation框架是Cocoa的基础,提供了一系列的系统服务和数据类型,如字符串、数组、字典等。而AppKit和UIKit则分别负责图形用户界面的构建,它们定义了视图、控制器和模型对象,使得开发者可以轻松创建和管理应用的...

    Cocoa.Programming.for.Mac.OS.X.4th.Edition.pdf

    - **自定义视图**:通过继承 NSView 并重写相应的方法,可以创建具有特定功能的自定义视图组件。 3. **Core Data**: - **实体-属性-关系模型**:Core Data 使用这个模型来表示数据结构。 - **数据上下文**:...

    java swt自定义控件

    SWT是一个开源的Java库,它的目标是提供与原生GUI库(如Windows的Win32 API,Mac OS的Cocoa,Linux的GTK+)类似的性能和功能。SWT使用JNI(Java Native Interface)来实现这一目标,它允许Java代码直接调用操作系统...

    Cocoa基础指南介绍

    Cocoa提供了许多支持应用程序开发的架构,如Core Services、Core Foundation和Core Graphics等,它们提供了底层的系统服务和图形绘制功能。Cocoa Touch(iOS平台)和Cocoa (macOS)虽然在某些方面有所不同,但都遵循...

Global site tag (gtag.js) - Google Analytics