アプリが選択されていない時は「ー」ボタンを Disable にしたい。
(追加)複数の方の指摘で -[NSObjectController canRemove] があることが判明。
NSObjectController Class Reference - canRemove
こちらの方が適切のようだ。実際期待通りの動作を確認しました。
指摘してくれた方々ありがとうございました。
MacOSXプログラミング。毎日更新。 話題: Cocoa, Objective-C, Snow Leopard
アプリが選択されていない時は「ー」ボタンを Disable にしたい。
今までのメニューキャプチャはこんな感じ。
終了時に SimpleViewer の位置と大きさを記録し、次回起動時に反映させる。アプリ終了は NSNotificationCenter に登録し NSApplicationWillTerminateNotification の通知で知る。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationWillTerminate:)
name:NSApplicationWillTerminateNotification object:nil];
:
こんな感じ。
(前回)Cocoaの日々: SImpleCap - プリファレンス改修:アプリ設定 (7) アプリが多い場合の表示 #3
画像を差し替える必要があるのと後々の拡張性を考えて、結局カスタムビューを用意した。
NSArrayController 関連で少し。
How to get notified of changes to models via an NSArrayController? - Stack Overflow
NSArrayController 経由でモデルの変更を知るには? KVO と 自前で NSNotificationCenter にポストする方法,
bind:toObject:withKeyPath:options: をオーバーライドする方法が紹介されていた。先日の SimpleCap改修では一番簡単な KVO を使った。こんな感じ。
という方法が紹介されていた。or you can do[[self mutableArrayValueForKey:@"buddies"] addObject:buddy]
[self insertObject:buddy inBuddiesAtIndex:[self countOfBuddies]]
(前回)Cocoaの日々: SImpleCap - プリファレンス改修:アプリ設定 (6) アプリが多い場合の表示 #2
前回のチラツキはコーディングミスが原因で、これは解消した。似たような名前の変数を作ってしまうのは良くないと反省。
さて続いてはメニューを出すためのアイコンを表示する。まずは動くものを作りたいので NSButton のサブクラスを作って貼り付ける。