- (void)magnifyWithEvent:(NSEvent *)event
{
static NSTimeInterval lastOccurredTime;
NSTimeInterval currentTime = [event timestamp];
if(currentTime - lastOccurredTime < 0.3) return;
if([event magnification] > 0) [self makeTextLarger:nil];
else [self makeTextSmaller:nil];
lastOccurredTime = currentTime;
} ピンチ操作の拡大縮小具合は [event magnification] で得られる。拡大の場合は正、縮小の場合は負の値が取れるけん、それに合わせて WebView の文字拡大縮小のメソッドを呼び出す。ユーザ的には一度のピンチ操作でも、
magnifyWithEvent: はジェスチャ中に何度も呼び出されてしまう。そのままでは一度のピンチ操作で一気に最大/最小文字サイズまで行ってしまうけん、最後にイヴェントが発生した時間を保存しておき、現在時間と比べて適当な時間間隔内であれば何もしないようにしておく。イヴェントが発生した時間(システム起動時からの経過時間)は [event timestamp] で取れる。
0 comments:
コメントを投稿