Snow Leopardで動作しないサンプルコードについて

Last update: 2009. 11. 27

「詳解 Objective-C 2.0」(荻原剛志著、ソフトバンククリエティブ)に掲載のサンプルプログラムのうち、Snow Leopardで動作しないものに関する修正情報を掲載します。

第16章: 画像ビューア

画像ビューア MyViewer で、メニューが正しく表示されず、動作させることができないという現象が発生します。 これは Snow Leopardになって、アプリケーションのメニューの表示方法が若干変更されたことによるものです。

対応方法: ファイル MyViewerCtrl.m の 41-42行をコメントアウトして、setMenuName: を呼び出さないようにして下さい。


    31	@implementation MyViewerCtrl
    32	
    33	/* Local Method */
    34	- (NSMenu *)newMenuWithTitle:(NSString *)title
    35	        name:(NSString *)name items:(itemdata *)itemdata
    36	{
    37	    NSMenu *menu;
    38	    int i;
    39	
    40	    menu = [[NSMenu alloc] initWithTitle: NSLocalizedString(title, "")];
  * 41	//  if (name)
  * 42	//      [menu setMenuName:name];
    43	    for (i = 0; itemdata[i].title != nil; i++) {
    44	        if (itemdata[i].kind == menu_bar)
    45	            [menu addItem:[NSMenuItem separatorItem]];
    46	        else {