0
大家好,我是新手,我有什麼,我預計會是一個很容易回答的問題。爲了學習一些關於事件處理和繪圖,我試圖寫繪製一個黑色的矩形,在長度每個用戶點擊「C」鍵時,會增加程序。到目前爲止,它只是在藍色背景上繪製一個黑色的矩形,而不響應按鍵。以下是我迄今爲止:可可:接受和響應按鍵
Input.h
#import <Cocoa/Cocoa.h>
@interface Input : NSView {
int length;
}
- (void)keyDown:(NSEvent *)theEvent;
@end
Input.m
#import "Input.h"
@implementation Input
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
length = 10;
if (self) {
// Initialization code here.
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect {
//set variables
NSRect r1;
NSBezierPath *bp;
// set background color
[[NSColor blueColor] set];
NSRectFill(dirtyRect);
//set color to black & draw r1
[[NSColor blackColor] set];
r1 = NSMakeRect(1, 1, length, 10);
bp = [NSBezierPath bezierPathWithRect:r1];
[bp fill];
}
- (void)keyDown:(NSEvent *)theEvent
{
NSString *key = [theEvent characters];
if ([key isEqualToString:@"c"]) {
length += 10;
}
}
@end
我從可可複製該keydown方法簡而言之,順便說一句。不用說,我不太瞭解它。爲了讓程序識別擊鍵,我是否必須在IB中建立連接?基本上,我會喜歡它,如果有人可以幫助我獲得這個項目的工作,因爲作爲然而我沒有得到什麼擊鍵迴應。
哇,感謝您的及時響應;我真的沒有想到任何人能夠很快恢復。 我添加了這些方法來Input.m,但恐怕它仍然不能正常工作:(。我覺得這應該是如此基本,但似乎我已經打了一堵牆。任何其他的想法或建議? 再次,非常感謝。 – 2010-01-20 23:32:46
看到更新以上。如果失敗,並登錄不上去的消息,那麼我們將不得不挖一個深一點。 – walkytalky 2010-01-21 08:53:51
好吧!你是男人。謝謝了很多。這是令人沮喪的挫折感。該setNeedsDisplay方法奏效了。我不知道爲什麼,但我的印象是,有觀點正在積極重繪。再次感謝您抽出時間來助陣初學者。 – 2010-01-21 09:54:53