macOS/iOS API解説

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

目次

hitTestForEvent:inRect:ofView:

レシーバーのヒットテスト情報を返します
-(NSUInteger)hitTestForEvent:(NSEvent *)event:
            inRect:(NSRect)cellFrame:
            ofView:(NSView *)controlView:

解説

レシーバーのヒットテスト情報を返します。

返り値

( NSUInteger )

【Hit testing】
●NSCellHitNone
空のエリア、又はセルをヒットしていない。
10.5以降
●NSCellHitContentArea
セルの内容のエリア
10.5以降
●NSCellHitEditableTextArea
セルの編集可能テキストエリア
10.5以降
●NSCellHitTrackableArea
セルのトラック可能エリア
10.5以降

引数

( NSEvent * )event

現在のイベント

( NSRect )cellFrame

セルのフレーム

( NSView * )controlView

セルがあるコントロールビュー

フレームワーク

ApplicationKit

クラス

NSCell

使用可能

10.5

参照

例文

//
//  MyTextFieldCell.m
//  hittest
//
//  Created by 大森智史 on 06/09/27.
//  Copyright 2006 Satoshi Oomori. All rights reserved.
//

#import "MyTextFieldCell.h"


@implementation MyTextFieldCell

-(void)awakeFromNib
{
NSLog(@"awakeFromNib");

}
-(BOOL)trackMouse:(NSEvent *)theEvent 
            inRect:(NSRect)cellFrame 
            ofView:(NSView *)controlView 
            untilMouseUp:(BOOL)untilMouseUp
{
	NSUInteger ret = [self  hitTestForEvent:theEvent
					inRect:cellFrame
					ofView:controlView
					];
					
	switch (ret){
				case NSCellHitNone:
					NSLog(@"NSCellHitNone");
					break ;
				case NSCellHitContentArea:
					NSLog(@"NSCellHitContentArea");
					break;
				case NSCellHitEditableTextArea:
					NSLog(@"NSCellHitEditableTextArea");
					break;
				case NSCellHitTrackableArea:
					NSLog(@"NSCellHitTrackableArea");
					break;
				default:
					NSLog(@"default");
				}
return NO;
}
@end