最新のマウスダウンイベントを処理する際の通常のウィンドウの順序を抑制します
- (void)preventWindowOrdering
func preventWindowOrdering()
解説
最新のマウスダウンイベントを処理する際の通常のウィンドウの順序を抑制します。
返り値
なし
引数
なし
フレームワーク
ApplicationKit
クラス
NSApplication
使用可能
10.0
編集時のバージョン
10.10
参照
例文
#import "Controller.h" @implementation Controller //NSWindowのデリゲート - (IBAction)pushButton:(id)sender { [[NSApplication sharedApplication] preventWindowOrdering]; } @end
//function037の検証用 import Foundation import AppKit @objc(ClickThroughButton) //作業中 class ClickThroughButton: NSButton { override func shouldDelayWindowOrderingForEvent(theEvent: NSEvent) -> Bool { let anApplication = MyApplication.sharedApplication() return anApplication.active } override func mouseDown(theEvent: NSEvent) { let anApplication = MyApplication.sharedApplication() if (!anApplication.active){ NSLog("NO Active") anApplication.preventWindowOrdering() self.highlight(true ) let theDate:NSDate = NSDate.distantFuture() as NSDate let maskUp = NSEventMask.LeftMouseUpMask.rawValue let mask = Int( maskUp ) // cast from UInt var mouseUpEvent = (anApplication.nextEventMatchingMask( Int(mask) , untilDate:(NSDate.distantPast() as NSDate), inMode:NSDefaultRunLoopMode, dequeue:true))as NSEvent? if(mouseUpEvent != nil){ var aPoint :NSPoint = mouseUpEvent!.locationInWindow //NSMakePoint(10.0, 10.0) var mouseLocation : NSPoint = self.convertPoint(aPoint, fromView: self) var mouseUpInside = self.mouse(mouseLocation, inRect: self.bounds) } self.highlight(false ) }else{ NSLog("YES Active") super.mouseDown(theEvent ) } } }