Keyboard Events(Chapter 19 of Cocoa Programming for Mac OS X)

  1  #import  " BigLetterView.h "
  2 
  3 
  4  @implementation BigLetterView
  5 
  6  -  (id)initWithFrame:(NSRect)frameRect
  7  {
  8       if ( ! [super initWithFrame:frameRect])
  9      {
 10           return  nil;
 11      }
 12      
 13      NSLog( @" initializing view " );
 14      bgColor  =  [[NSColor yellowColor] retain];
 15       string   =   @"   " ;
 16       return  self;
 17  }
 18 
 19  -  ( void )dealloc
 20  {
 21      [bgColor release];
 22      [ string  release];
 23      [super dealloc];
 24  }
 25 
 26  -  ( void )drawRect:(NSRect)dirtyRect
 27  {
 28      NSRect bounds  =  [self bounds];
 29      [bgColor  set ];
 30      [NSBezierPath fillRect:bounds];
 31      
 32       if ([[self window] firstResponder]  ==  self)
 33      {
 34          [[NSColor keyboardFocusIndicatorColor]  set ];
 35          [NSBezierPath setDefaultLineWidth: 4.0 ];
 36          [NSBezierPath strokeRect:bounds];
 37      }
 38  }
 39 
 40  -  (BOOL)isOpaque
 41  {
 42       return  YES;
 43  }
 44 
 45  -  (BOOL)acceptsFirstResponder
 46  {
 47      NSLog( @" Accepting " );
 48       return  YES;
 49  }
 50 
 51  -  (BOOL)resignFirstResponder
 52  {
 53      NSLog( @" Resigning " );
 54      [self setNeedsDisplay:YES];
 55       return  YES;
 56  }
 57 
 58  -  (BOOL)becomeFirstResponder
 59  {
 60      NSLog( @" Becoming " );
 61      [self setNeedsDisplay:YES];
 62       return  YES;
 63  }
 64 
 65  -  ( void )keyDown:(NSEvent  * )theEvent
 66  {
 67      [self interpretKeyEvents:[NSArray arrayWithObject:theEvent]];
 68  }
 69 
 70  -  ( void )insertText:(NSString  * )input
 71  {
 72      [self setString:input];
 73  }
 74 
 75  -  ( void )insertTab:(id)sender
 76  {
 77      [[self window] selectKeyViewPrecedingView:self];
 78  }
 79 
 80  -  ( void )deleteBackward:(id)sender
 81  {
 82      [self setString: @"   " ];
 83  }
 84 
 85  #pragma  mark Accessors
 86 
 87  -  ( void )setBgColor:(NSColor  * )c
 88  {
 89      [c retain];
 90      [bgColor release];
 91      bgColor  =  c;
 92      [self setNeedsDisplay:YES];
 93  }
 94 
 95  -  (NSColor  * )bgColor
 96  {
 97       return  bgColor;
 98  }
 99 
100  -  ( void )setString:(NSString  * )c
101  {
102      c  =  [c copy];
103      [ string  release];
104       string   =  c;
105      NSLog( @" The string is now %@ " string );
106  }
107 
108  -  (NSString  * ) string
109  {
110       return   string ;
111  }
112 
113  @end

转载于:https://www.cnblogs.com/zhtf2014/archive/2011/02/28/1967163.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值