Co najlepiej zrobić, jeśli chodzi o budowanie pola adresowego, takiego jak w safari?NSTextField lubię pasek adresu Safari
Wymaga edytowalnego tekstu i określa tło wskaźnika postępu.
Co najlepiej zrobić, jeśli chodzi o budowanie pola adresowego, takiego jak w safari?NSTextField lubię pasek adresu Safari
Wymaga edytowalnego tekstu i określa tło wskaźnika postępu.
Można po prostu podklasować NSTextField
i zastąpić metodę -drawRect:
, aby "wypełnić" odpowiedni procent całej szerokości z pewnym kolorem lub gradientem (lub czymkolwiek) dla postępu. Jeśli dobrze rozumiem twoje pytanie.
-(void)drawRect:(NSRect)dirtyRect {
CGFloat progress = 0.33;
NSRect progressRect = [self bounds];
progressRect.size.width *= progress;
[[NSColor colorWithCalibratedRed:0.0 green:0.0 blue:1.0 alpha:0.4] set];
NSRectFillUsingOperation(progressRect, NSCompositeSourceOver);
[super drawRect:dirtyRect];
}
Oczywiście "postęp" pochodziłby z własności, którą deklarujesz i która jest aktualizowana zgodnie z modelem. Musisz się upewnić, że setDrawsBackground:
jest wyłączone lub że tło ustawione jest na [NSColor clearColor];
, aby zobaczyć Twój niestandardowy rysunek.
To jest strzał z powyższego kodu.