首页 > 其他分享 >【Cocoa(mac) Application 开发系列之二】总结一些常用控件以及简单在自定义View上绘制字符串

【Cocoa(mac) Application 开发系列之二】总结一些常用控件以及简单在自定义View上绘制字符串

时间:2022-11-24 15:39:43浏览次数:71  
标签:控件 sender 自定义 MyView NSLog Cocoa Himi ------ IBOutlet



本站文章均为​ 李华明Himi ​​原创,转载务必在明显处注明:​​​​


上一篇已经对于xib与控件之间的关系都大致介绍了;

那么本篇不再详细解释如何如何连接控件以及控件代码等,直接给出代码以及需要注意的简单介绍下,便于童鞋们使用时可以给与参考:

1. 首先创建一个MyView类,继承NSView,如下:


​//​


​//  MyView.h​


​//  ManyControlTest​


​//​


​//  Created by Himi on 12-6-6.​


​//  Copyright (c) 2012年 Himi. All rights reserved.​


​//​


 


​#import <Cocoa/Cocoa.h>​


 


​@interface MyView : NSView​


​@end​



​//​


​//  MyView.m​


​//  ManyControlTest​


​//​


​//  Created by Himi on 12-6-6.​


​//  Copyright (c) 2012年 Himi. All rights reserved.​


​//​


 


​#import "MyView.h"​


 


​@implementation MyView​


​- (id)initWithFrame:(NSRect)frame​


​{​


​self = [super initWithFrame:frame];​


​if​​ ​​(self) {​


​// Initialization code here.​


​}​


 


​return​​ ​​self;​


​}​


 


​- (​​ ​​void​​ ​​)drawRect:(NSRect)dirtyRect​


​{ ​


 


​NSString * str =@​​ ​​"MyView   --by Himi"​​ ​​;​


 


​//属性包装设置​


​NSMutableDictionary *dic = [NSMutableDictionary dictionary];​


 


​//设置字体样式​


​[dic setObject:[NSFont fontWithName:@​​ ​​"Times"​​ ​​size:14] forKey:NSFontAttributeName]; ​


 


​//设置字体颜色​


​[dic setObject:[NSColor redColor] forKey:NSForegroundColorAttributeName];​


 


​//绘制​


​[str drawAtPoint:NSMakePoint(50, 50) withAttributes:dic];​


​}​


 


​@end​


代码很easy理解,不在赘述啦~

下面我们看一些基础常用控件:


​//​


​//  AppDelegate.h​


​//  ManyControlTest​


​//​


​//  Created by Himi on 12-6-3.​


​//  Copyright (c) 2012年 Himi. All rights reserved.​


​//​


 


​#import <Cocoa/Cocoa.h>​


​#import "MyView.h"​


 


​@interface AppDelegate : NSObject <NSApplicationDelegate,NSTabViewDelegate>​


​{​


 


​IBOutlet NSTextField *nfCount;​


 


​IBOutlet NSView *view ;​


 


​IBOutlet NSButton *btn;​


 


​IBOutlet NSPopUpButton *popBtn;​


 


​IBOutlet NSSegmentedControl * nsc;​


 


​IBOutlet NSForm *nForm;​


 


​IBOutlet NSMatrix * ms;​


 


​IBOutlet NSStepper * nsp;​


 


​IBOutlet NSTabView *tbView;​


 


​IBOutlet NSColorWell * nsWell;​


 


​IBOutlet MyView * myView;​


 


​}​


 


​-(IBAction)btnPress:(id)sender;​


 


​@property (assign) IBOutlet NSWindow *window;​


 


​@end​


 


​//​


​//  AppDelegate.m​


​//  ManyControlTest​


​//​


​//  Created by Himi on 12-6-3.​


​//  Copyright (c) 2012年 Himi. All rights reserved.​


​//​


 


​#import "AppDelegate.h"​


 


​@implementation AppDelegate​


 


​@synthesize window = _window;​


 


​- (​​ ​​void​​ ​​)applicationDidFinishLaunching:(NSNotification *)aNotification​


​{​


​//------绑定Delegate​


​[tbView setDelegate:self];​


​}​


​-(IBAction)btnPress:(id)sender{​


 


​//------ 处理NSButton的​


​if​​ ​​(btn == sender){​


​[myView setHidden:YES];​


​}​


 


​//------处理NSPopUpButton​


​if​​ ​​(popBtn == sender){​


​NSLog(@​​ ​​"%@"​​ ​​,[popBtn itemTitleAtIndex:0]);​


​NSLog(@​​ ​​"%@"​​ ​​,[popBtn itemTitleAtIndex:1]);​


​NSLog(@​​ ​​"%@"​​ ​​,[popBtn itemTitleAtIndex:2]);​


​}​


 


​//------处理 NSSegmentedControl​


​if​​ ​​(nsc ==sender){​


​NSLog(@​​ ​​"%i"​​ ​​,[nsc isSelectedForSegment:0]);​


​NSLog(@​​ ​​"%i"​​ ​​,[nsc isSelectedForSegment:1]);​


​NSLog(@​​ ​​"%i"​​ ​​,[nsc isSelectedForSegment:2]);​


​}​


 


​//------处理 NSForm​


​if​​ ​​(nForm == sender){​


​NSLog(@​​ ​​"NSForm Cell 1 is %@"​​ ​​,[[nForm cellAtIndex:0] stringValue]); ​


 


​NSLog(@​​ ​​"NSForm Cell 2 is %@"​​ ​​,[[nForm cellAtIndex:1] stringValue]);​


 


​NSLog(@​​ ​​"NSForm Cell 3 is %@"​​ ​​,[[nForm cellAtIndex:2] stringValue]);​


​}​


 


​//------处理NSMatrix​


​if​​ ​​(ms == sender){​


​NSLog(@​​ ​​"NSMatrix is Select = %@"​​ ​​,[[ms selectedCell] title]);​


​}​


 


​//-----处理 NSStepper​


​if​​ ​​(nsp == sender){​


 


​NSString *string = [NSString stringWithFormat:@​​ ​​"%i"​​ ​​, (​​ ​​int​​ ​​)[nsp doubleValue]];​


​[nfCount setStringValue:string];​


​}​


 


​//-----处理 nsWell​


​if​​ ​​(nsWell == sender){​


​NSColor* color =  [nsWell color];​


​NSLog(@​​ ​​"R=%f,G=%f,B=%f"​​ ​​,[color greenComponent],[color redComponent],[color blueComponent]);​


​}​


​}​


 


​//------处理 tbView​


​//-(void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem{}​


​-(​​ ​​void​​ ​​)tabView:(NSTabView *)tabView willSelectTabViewItem:(NSTabViewItem *)tabViewItem{​


​if​​ ​​([tbView indexOfTabViewItem:tabViewItem] == 0) {​


​NSLog(@​​ ​​"view 111"​​ ​​);​


​}​​ ​​else​​ ​​if​​ ​​([tbView indexOfTabViewItem:tabViewItem] == 1) {​


​NSLog(@​​ ​​"view 222"​​ ​​);​


​}​


​}​


 


​@end​


 

运行截图如下:

​​

标签:控件,sender,自定义,MyView,NSLog,Cocoa,Himi,------,IBOutlet
From: https://blog.51cto.com/xiaominghimi/5884013

相关文章