sto cambiando la dimensione punto di inserimento sovrascrivendo -(void)drawInsertionPointInRect:(NSRect)aRect color:(NSColor *)aColor turnedOn:(BOOL)flag
, ma non gestisce il primo batter (quando si sposta il punto di inserimento, si torna alla normalità)personalizzati punto di inserimento per NSTextView
sono riuscito a gestire il primo lampeggiamento ignorando il metodo privato - (void)_drawInsertionPointInRect:(NSRect)aRect color:(NSColor *)aColor
.
Ma questa non è una soluzione per me poiché l'override del metodo privato risulterà in declino da App Store. Voglio che l'app sia nell'App Store. Vedo che App come iAWriter e Writeroom hanno un punto di inserimento personalizzato e sono in App Store.
Qualcuno sa come sono riusciti a farlo, o in un modo migliore invece di scavalcare il metodo privato?
Grazie.
- (void)_drawInsertionPointInRect:(NSRect)aRect color:(NSColor *)aColor
{
aRect.size.width = 3.0;
[aColor set];
[NSBezierPath fillRect:aRect];
}
- (void)drawInsertionPointInRect:(NSRect)aRect color:(NSColor *)aColor turnedOn:(BOOL)flag
{
if(flag) {
aRect.size.width = 3.0;
[aColor set];
[NSBezierPath fillRect:aRect];
}
else {
[self setNeedsDisplayInRect:[self visibleRect] avoidAdditionalLayout:NO];
}
}
Hai provato a cancellare l'area del punto di inserimento (riempire con sfondo, qualsiasi altra cosa) quando il flag è falso? –