ObjC

Dockに独自メニューを追加する

MinimumMenu の version 0.3 では、Preferences パネルでアプリケーションのメニューを全部消すことができるようになった。じゃあ、メニューがなかったら Preferences パネルはどうやって表示したらよいのでしょう。それには、Dock に表示されている Minimum…

MinimumMenuをもっと自分好みに改造する

昨日は、画面上端を 2 回つっついて青い線を表示するように改造した。いっそのこと二回つついたら即座に MinimumMenu がアクティベートするようにしたらどうだろう。 この設定も Preferences パネルで設定できるように見越して次のメソッドを作っておく。 - …

MinimumMenuを自分好みに改造する

前回 の続き。自分は、メニューを操作する時に、マウスポインタを画面の上端に放り投げるようにして移動させる癖がある。ということは、必ず MinimumMenu が反応してしまうということ。上端まで勢いよく移動してからまた少し下に移動させなければならないの…

MinimumMenuの動作を調べる

昨日の続き。昨日行った改造が影響してかどうしてか、MinimumMenu の ClearWindow つまり青い線が画面の上部に表示されなくなってしまった。そこで awakeFromNib メソッドのウィンドウを非表示にしているところをコメントアウトして実行したら、画面の下に表…

アプリケーション名のメニューアイテムにイメージを表示する

アップルメニューの右隣、アプリケーションのバンドル名が表示されているところにアイコンを表示してみたいと思った。メニューバーアプリや、メニューエクストラはメニューバーの多くの領域を占めるが、その数が多くなってくると MacBook や MacBook Pro で…

Reading the Objective-C Book

Today's Lunch まぐろの揚げ漬け大根とカニくずかけ 「詳解 Objective-C 2.0」を久しぶりに読む。 しかし、どこまで読んでいたかすっかり忘れている。 Evernote に各節の要点をメモしていたので、 それを元に思い出しながら読んだ。 人によっては本を読みな…

オブジェクト指向プログラミング入門

ふと思い立ってisbn:9784894717794:title 第2版 Timothy A. Buddに書かれていた ftp サイトを訪れてみる。しかし残念ながら「ページを開けませんでした」というエラーになる。なんだかんだやって http://web.engr.oregonstate.edu/~budd/ にたどり着いた。こ…

exchange NSObject#autorelease

昨日までの実験だが、結局のところ NSAutoreleasePool#addObject: を置き換えるのが目的ではない。もともとはコンビニエンスコンストラクタが、オブジェクトを自動解放プールに登録するのかどうかを確認したかったのである。であれば NSAutoreleasePool のサ…

poseAsClass and method_exchangeImplementations

昨日の続き。クラスのポージングを使ってみた。 @interface TESTAutoreleasePool : NSAutoreleasePool @end @implementation TESTAutoreleasePool +(void)load { if (self != [TESTAutoreleasePool class]) return; NSLog(@"%s pose as NSAutoreleasePool\n"…

method_setImplementation

昨日の問題。今日は class_replaceMethod ではなく method_setImplementation を使ってみた。 BOOL TEST_replaceMethod(Class replaceClass) { Method replaceMethod = class_getInstanceMethod(replaceClass, @selector(addObject:)); originalImp = method…

NSAutorelease#addObject:

以前作った TestPool クラスでは、自分が生成した自動解放プールでなければ autorelease されたオブジェクトを知ることができなかった。そこでランタイムAPI の class_replaceMethod を使って、addObject メソッドの中でログを出力するようにしてみた。 stat…

Do not lift a finger

ローマの休日のために朝方まで起きてしまった。朝日を感じながら寝る。そして起きたのが19:30頃。せっかくの3連休、なにもできないぞこりゃ。 オブジェクト指向プログラミング入門 第2版 Timothy A. Budd、「第3章クラスとメソッド」と「第4章メッセージとイ…

Objective-C

isbn:978-4797346800:image:small:left 「isbn:978-4797346800:title」(荻原剛志)を読み進める。「メッセージ送信の仕組み」あたり。 まあここら辺は「オブジェクト指向のプログラミング―ソフトウエア再利用の新しい方法 (アジソン ウェスレイ・トッパン情…

Convenience Constructor

Cats 11:00銀行に到着。30分待たされて通帳を渡される。キャッシュカードは1週間から10日後に郵送されるとのこと。 コンビニエンスコンストラクタの挙動を確認するためサンプルコードを書いてみた。 #import <Foundation/Foundation.h> @interface TestPool : NSAutoreleasePool -(voi</foundation/foundation.h>…

Reference Count

Cocoa の参照計数が気になったのでサンプルコードを書いて確認してみる。 #import <Foundation/Foundation.h> @interface A : NSObject -(void)dealloc; @end @implementation A -(void)dealloc { NSLog(@"A retainCount before [super dealloc]: %d\n", [self retainCount]); [super </foundation/foundation.h>…

Copyright

Xcodeのコメントに自動挿入される作者名と組織名を変更する。 defaults write com.apple.Xcode \PBXCustomTemplateMacroDefinitions \'{FULLUSERNAME="My Name"; ORGANIZATIONNAME="My Org Name";}' オブジェクト指向プログラミング入門 第2版 Timothy A. Bu…

ObjC Tutorial

朝からどうも気分が乗らない。それでも午前中に運動をして少し気分が上向いたかも。家に帰って布団に潜り込みApple Developer Connectionの 日本語ドキュメント - Apple Developer を読みながらうたた寝する。目が覚めたら21:30だった。

Type Check

朝起きると雪が2cm程積もっていた。何年ぶりかなあ。もっともお昼までにはすっかり消えてしまっていた。 「isbn:978-4797346800:title」(荻原剛志)、04-02 型の静的なチェック:使われるクラスが確定している場合には、クラス名を明示した型宣言を行うこと…

Objective-C 2.0

「詳解 Objective-C 2.0」(荻原 剛志)を読み始める。最初はオブジェクト指向の説明から書かれている。 オブジェクト指向は知っているつもりだけれども、確認のために読み進める。 そうそう、忘れないうちにバグ退散のおまじないをしておく。 #import <objc/Object.h> @inter</objc/object.h>…