Mercurial > hg > openttd
changeset 13209:fb78f96e560a draft
(svn r17716) -Codechange: [OSX] Invoke a (semi-)private Objective-C method in a way that does not rely on the SDK version.
author | michi_cc <michi_cc@openttd.org> |
---|---|
date | Sun, 04 Oct 2009 21:39:08 +0000 |
parents | b57d178132ac |
children | 53ed49be428d |
files | src/video/cocoa/cocoa_v.mm |
diffstat | 1 files changed, 4 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -44,13 +44,6 @@ * Read http://developer.apple.com/releasenotes/Cocoa/Objective-C++.html for more information. */ -/* Disables a warning. This is needed since the method exists but has been dropped from the header, supposedly as of 10.4. */ -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4) -@interface NSApplication(NSAppleMenu) -- (void)setAppleMenu:(NSMenu *)menu; -@end -#endif - @interface OTTDMain : NSObject @end @@ -116,8 +109,10 @@ [ menuItem setSubmenu:appleMenu ]; [ [ NSApp mainMenu ] addItem:menuItem ]; - /* Tell the application object that this is now the application menu */ - [ NSApp setAppleMenu:appleMenu ]; + /* Tell the application object that this is now the application menu. + * This interesting Objective-C construct is used because not all SDK + * versions define this method publicly. */ + [ NSApp performSelector:@selector(setAppleMenu:) withObject:appleMenu ]; /* Finally give up our references to the objects */ [ appleMenu release ];