Mac Dev
Spacesでスペースを切り替えた時に、ウィンドウが表示中のSpaceにあるか判定したい場合がある。 この判定には、NSWindowのisOnActiveSpaceを使用する。isOnActiveSpaceは、Mac OS X 10.6から追加されているため、10.5では使えない。 Mac OS X 10.5では、非公…
SpacesでアクティブなSpaceが切り替わったことを検出するには、 NSWorkspaceActiveSpaceDidChangeNotificationが通知されるようにする。 記事は、アトトックLabo http://www.atotok.com/labo/mac_dev/20110208000227.html
アトトックラボに投稿しました。マウスカーソルがView上にある場合に、カーソルの形状を変更する方法。http://www.atotok.com/labo/mac_dev/20110105000156.html
先日、投稿したメニューバーが表示されているスクリーンの情報を取得について、 動作確認した結果をまとめてみました。記事はこちら http://www.atotok.com/labo/mac_dev/20101229021258.html
ウィンドウのタイトルバーの下に表示されるアラートシートを表示するにはNSAlertを使用する。記事はこちら http://www.atotok.com/labo/mac_dev/20101229011240.html
アプリケーションからURLをしていしてブラウザを開くには、 下記のように1行書けばOK。 [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://atotok.com"]];
アプリケーションが動作しているシステムのバージョンを取得する方法 SInt32 ver ; if(!Gestalt(gestaltSystemVersion,&ver)) { NSLog(@"ver : %x",ver); } 実行結果 Mac OS X 10.6.4で実行した場合 ver : 1064
複数の画像ファイル「*.jpg」のファイル名を、「*_s.jpg」などに変えたい場合、ターミナルからコマンドで一括変換する。 $ for fn in *.jpg ; do mv $fn ${fn/.jpg/_s.jpg}; done
Objective-Cのオブジェクトが何のクラスなのか確認する方法 isKindOfClass で確認する。 例 if ([obj isKindOfClass:[NSDictionary class]]) { } if ([obj isKindOfClass:[NSArray class]]) { }
NSViewのmouseEnteredメッセージとmouseExitedメッセージはマウス移動した時にViewが受信するメッセージだ。 mouseEnteredはNSViewにマウスが入ったとき、mouseExitedはNSViewからマウスが出たときに受信する。 しかし、この2つのメソッドはデフォルトの状…
ビューの描画は必ずしもメインスレッドで実行しなければならないわけではない。 NSViewオブジェクトのプロパティ(たとえばビューのフレーム矩形など)を可変にすることができるのは、メインスレッドだけである。 NSViewのdisplayメソッドを呼び出すと、Appl…
ビルド環境 Mac OS X 10.5.8 Leopard Xcode 3.1.3 Boost 1.39 ビルド $ ./bjam --toolset=darwin --with-regex link=static runtime-link=static architecture=combined address-model=32_64 Building C++ Boost. After the build, the headers will be loca…
NSLogでデバッグ出力したログは、コンソール.appのコンソールメッセージに表示されるが ここに表示されるメッセージは、/var/log/system.log に出力されている。
CGBitmapContextCreateがサポートしている色空間について、 Technical Q&A QA1037で説明されている。 http://developer.apple.com/jp/qa/qa2001/qa1037.html 24ビットピクセルにはならないのか
24ビットのビットマップを作成してみた。 CGDataProviderCreateWithDataに渡すbitmapにはRGBAではなくRGBの24ビットの連続したデータを格納し 下記のソースのように、NSBitmapImageRepを作成すると正常に作成され、 bitsPerPixelは24になっている。 先日、試…
24bitのビットマップデータを作るにはどうしたら良いかといろいろ試していると CGImageCreateのbitmapInfoの指定で24bitのビットマップができた。 CGImageCreate Creates a bitmap image from data supplied by a data provider. CGImageRef CGImageCreate (…
デスクトップのスクリーンショットはCGWindowListCreateImageで取得できる。 CGImageRef screenImageRef = CGWindowListCreateImage( [[NSScreen mainScreen]frame], kCGWindowListOptionOnScreenBelowWindow, kCGNullWindowID, kCGWindowImageDefault); CGW…
ビルド環境 Mac OS X 10.5.8 Leopard Xcode 3.1.3 ビルド Boostのdate_timeをビルドしUniversal Binaryのライブラリを作成する。 iMac:boost_1_39_0 kuru$ ./bjam --toolset=darwin --with-date_time link=static runtime-link=static architecture=combined…
ビルド環境 Mac OS X 10.5.8 Leopard Xcode 3.1.3 ビルド BoostのsystemをビルドしUniversal Binaryのライブラリを作成する。 iMac:boost_1_39_0 kuru$ ./bjam --toolset=darwin --with-system link=static runtime-link=static architecture=combined addre…
CGRectとNSRectを相互に変換する関数 NSRectからCGRect CGRect NSRectToCGRect(NSRect nsrect) CGRectからNSRect NSRect NSRectFromCGRect(CGRect cgrect) Available in Mac OS X v10.5 and later.
C++のコードでObjective-Cのオブジェクトを扱いたい場合 拡張子を .cppでなく .mmにする ソースのファイルタイプをsourcecode.cpp.cppでなくsourcecode.cpp.objcppにする どちらかで対応する。 参考 Objective-CとC++の機能の混在
スクリーンサイズを取得するにはNSScreenクラスを使用する。 NSRect rect1 = [[NSScreen mainScreen]frame] ; NSLog(@"rect1 : %@",NSStringFromRect(rect1)) ; NSRect rect2 = [[NSScreen mainScreen]visibleFrame] ; NSLog(@"rect2 : %@",NSStringFromRect…
WebKit Objective-C Framework Reference WebKit Objective-C Programming Guide WebKit Plug-In Programming Topics WebScripting Protocol Reference
WebKit Plug-Inの中からJavaScriptのfunctionを実行するには、 WebScriptObjectクラスの下記のメソッドを使用する。 - (id)callWebScriptMethod:(NSString *)namewithArguments:(NSArray *)args JavaScript側のfunction <script LANGUAGE="JavaScript"> function test_func(){ alert('test_</script>…
セレクタを文字列から生成するにはNSSelectorFromStringを使用する。 SEL sel = NSSelectorFromString(@"hogehoge::") ;
NSViewのサブクラスで下記のメソッドをオーバーライドしてもキーイベントが取得できない。 - (void)keyDown:(NSEvent *)theEvent - (void)keyUp:(NSEvent *)theEvent - (void)flagsChanged:(NSEvent *)theEvent NSViewのサブクラスでキーイベントを取得した…
libpngとzlibをビルドし、各OS環境で動作することを確認した。 png_sig_cmpを使用したテストプログラムを作成し確認した。 ライブラリのバージョン libpng-1.2.12 zlib-1.2.3 ビルド環境 Mac OS X 10.6.1 Xcode 3.2 zlibをビルド $ configure $ make libpng…
configure とmake 「zlibの動作確認 - Panther〜Snow Leopard」と同じ方法で下記の環境でzlibをビルドする。 Power Mac G3 , Mac OS X 10.3.9 , Xcode 1.0 iMac (Intel) , Mac OS X 10.5.8 , Xcode 3.13 $ configure $ make ライブラリをマージ 複数のライブ…
Technical Note TN2137:“configure”ベースのオープンソースプロジェクトからのUniversal Binaryのビルドを参考にやってみたが、makeでエラーになってしまう。 CFLAGSとLDFLAGSを設定 Macintosh:libpng-1.2.12 kuru$ export CFLAGS="-O -g -isysroot /Develop…
libpng-1.2.12のUniversal Binaryを作成する。 下記の3つの環境でlibpng-1.2.12をビルドしてみる。 Mac OS X 10.3.9 , Power Mac G3 Mac OS X 10.5.8 , iMac (Intel) Mac OS X 10.6.1 , MacBook Pro (Intel) 下記のように3つの環境でlibpng-1.2.12をビルド…