macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

drawUnderlineForGlyphRange:underlineType:baselineOffset:lineFragmentRect:lineFragmentGlyphRange:containerOrigin:

グリフ範囲に下線を描画します
-(void)drawUnderlineForGlyphRange:(NSRange)glyphRange:
          underlineType:(int)underlineType:
          baselineOffset:(float)baselineOffset:
          lineFragmentRect:(NSRect)lineRect:
          lineFragmentGlyphRange:(NSRange)lineGlyphRange:
          containerOrigin:(NSPoint)containerOrigin:

解説

グリフ範囲に下線を描画します。
underlineGlyphRange:,underlineType,lineFragmentRect,lineFragmentGlyphRange,containerOriginによって自動的に呼び出されるので直接呼び出す必要はありません。
サブクラスでオーバーライドできます。
【underlineType】
● NSNoUnderlineStyle
● NSSingleUnderlineStyle

返り値

( void )

なし

引数

( NSRange )glyphRange

グリフの範囲

( int )underlineType

下線のタイプ

( float )baselineOffset

ベースラインオフセット

( NSRect )lineRect

下線が描画されるグリフが格納されているラインブレーク矩形

( NSRange )lineGlyphRange

下線が描画されるグリフが格納されているラインブレーク矩形に入る全てのグリフ範囲

( NSPoint )containerOrigin

病がされるNSViewの座標系で示されたラインブレーク矩形のNSTextContainerの位置

フレームワーク

ApplicationKit

クラス

NSLayoutManager

Instance Methods

使用可能

10.0

参照

例文

//下線を引く(日本語変換の時の下線ではなく、装飾の下線)
- (void)drawUnderlineForGlyphRange:(NSRange)glyphRange underlineType:(int)underlineVal baselineOffset:(float)baselineOffset lineFragmentRect:(NSRect)lineRect lineFragmentGlyphRange:(NSRange)lineGlyphRange containerOrigin:(NSPoint)containerOrigin;
{
//(char *)glyphs length:
//(unsigned)glyphLen glyphRange:
//(NSRange)glyphRange atPoint:

//(NSFont *)font color:
//(NSColor *)color printingAdjustment:
//(NSSize)printingAdjustment

	//描画に回転をかける
	/*
	NSGraphicsContext *context = [NSGraphicsContext currentContext];
	[context saveGraphicsState];
	
	
	NSAffineTransform* affine = [NSAffineTransform transform];
	// move axis
	[affine translateXBy: 0 //currentPoint.x + attrSize.width/2
					 yBy: -5 ];//currentPoint.y + attrSize.height/2 ]; // Someone modifies here properly please.

	[affine rotateByDegrees:10.0];
	[affine concat];	
	*/
		
				
				
	NSPoint newPoint = NSMakePoint(containerOrigin.x,containerOrigin.y);//y
	//NSSize newSize = NSMakeSize(printingAdjustment.width,printingAdjustment.height+100);
	NSLog(NSLocalizedString( @"LM00005", @""));

	[super drawUnderlineForGlyphRange:glyphRange underlineType:underlineVal baselineOffset:baselineOffset lineFragmentRect:lineRect lineFragmentGlyphRange:lineGlyphRange containerOrigin: newPoint];
	//[super drawUnderlineForGlyphRange:glyphRange underlineType:underlineVal baselineOffset:baselineOffset lineFragmentRect:lineRect lineFragmentGlyphRange:lineGlyphRange containerOrigin:containerOrigin];

	
	////描画に回転をかけるおわり
	//[context restoreGraphicsState];
	
}