macmoonshine schrieb:
[drawPath retain];
Anfängerfrage: Wie wird ein Custom View richtig eingesetzt?
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
@MyMattes:
In initWithFrame wird der drawPath initialisiert und in drawRect später benutzt. Und ja, es funktioniert!!!
Quellcode
- - (id)initWithFrame:(NSRect)frame
- {
- self = [super initWithFrame:frame];
- if (self) {
- // Initialization code here.
- i = 0;
- myDrawRect = [self bounds];
- CGFloat dxr = 30.5;
- CGFloat dyu = 20.5;
- CGFloat dxl = 30.5;
- CGFloat dyo = 5.5;
- pul.x = myDrawRect.origin.x+dxl;
- pul.y = myDrawRect.origin.y+dyu;
- pur.x = pul.x+myDrawRect.size.width-dxl-dxr;
- pur.y = pul.y;
- pol.x = pul.x;
- pol.y = pul.y+myDrawRect.size.height-dyu-dyo;
- por.x = pur.x;
- por.y = pol.y;
- drawPath = [[NSBezierPath alloc] init];
- //drawPath = [NSBezierPath bezierPath];
- [drawPath moveToPoint: pur];
- [drawPath lineToPoint: pul];
- [drawPath moveToPoint: NSMakePoint(pul.x, pul.y-4)];
- [drawPath lineToPoint: pol];
- [drawPath lineToPoint: por];
- [drawPath lineToPoint: pur];
- [drawPath lineToPoint: NSMakePoint(pur.x, pur.y-4)];
- [drawPath setLineWidth:1.0];
- }
- return self;
- }
-
1) Das hier funktioniert nicht:
2) Das hier funktioniert:
Quellcode
3) Und das hier funktioniert auch:
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von LarsKrachen ()
-
LarsKrachen schrieb:
In initWithFrame wird der drawPath initialisiert und in drawRect später benutzt. Und ja, es funktioniert!!!
Aaahhh, so langsam dämmert es mir, glaube ich
Kann es sein, dass im genannten Fall nur eine Custom View archiviert und somit beim Wiederherstellen eben das initWithCoder: von NSCustomView aufgerufen wird? Erst diese instanziert dann die eigentliche View mit dem entsprechenden initWithCoder: (und führt so auch Lars' Code aus) ...
Kann mir das eine(r) von Euch Cracks bestätigen? Dann würde mein Weltbild wieder stimmen ... MattesDiese Seite bleibt aus technischen Gründen unbedruckt. -
LarsKrachen schrieb:
1) Das hier funktioniert nicht:
Stichwort zum Selbststudium: "Memory Management" AKA "Speicherverwaltung" ... einfach mal ein paar Tage zurück Deinen eigenen Thread lesen.
Genervt, MattesDiese Seite bleibt aus technischen Gründen unbedruckt. -
Der Custom View sitzt in einer NSBox. Weiß nicht ob das irgendwas zur Klärung beiträgt!
-
LarsKrachen schrieb:
1) Das hier funktioniert nicht:
2) Das hier funktioniert:
Quellcode
3) Und das hier funktioniert auch:
Version 1 geht nicht, weil nach dem Verlassen der Methode, Dein Objekt wieder weg ist. -
MyMattes schrieb:
LarsKrachen schrieb:
1) Das hier funktioniert nicht:
Stichwort zum Selbststudium: "Memory Management" AKA "Speicherverwaltung" ... einfach mal ein paar Tage zurück Deinen eigenen Thread lesen.
Genervt, Mattes -
LarsKrachen schrieb:
MyMattes schrieb:
LarsKrachen schrieb:
1) Das hier funktioniert nicht:
Stichwort zum Selbststudium: "Memory Management" AKA "Speicherverwaltung" ... einfach mal ein paar Tage zurück Deinen eigenen Thread lesen.
Genervt, Mattes -
Ist das der richtige Weg?
Und wann benutzt man display und wann setNeedsDisplay? -
LarsKrachen schrieb:
Und wann benutzt man display und wann setNeedsDisplay?
Wenn Du möchtest, dass Dein View neugezeichnet werden soll, schickst Du ihm ein setNeedsDisplay. Das Zeichnen macht drawRect: und display verwendest Du so gut wie nie.
Siehe: developer.apple.com/library/io…/uid/TP40006816-CH3-SW139„Meine Komplikation hatte eine Komplikation.“ -
MyMattes schrieb:
Kann es sein, dass im genannten Fall nur eine Custom View archiviert und somit beim Wiederherstellen eben das initWithCoder: von NSCustomView aufgerufen wird? Erst diese instanziert dann die eigentliche View mit dem entsprechenden initWithCoder: (und führt so auch Lars' Code aus) ...
Kann mir das eine(r) von Euch Cracks bestätigen? Dann würde mein Weltbild wieder stimmen ... Mattes
Das kann ich Dir bestätigen. Ich kann Dir sogar sagen, wo Apple das beschreibt.
Michael -
Michael schrieb:
Das kann ich Dir bestätigen. Ich kann Dir sogar sagen, wo Apple das beschreibt.
Wow, danke!
Ich bin immer wieder von der Apple-Doku angetan, naja, fast immer! Nun müsste ich mir nur noch alle Sache merken können ... MattesDiese Seite bleibt aus technischen Gründen unbedruckt.
-
Tags