كيف يمكنني تحميل تمثيل nsimage للرمز لتطبيقي؟
سؤال
لدي ملف رمز مخصص (myapp.icns) تم إعداده لتطبيق الكاكاو الخاص بي. كيف يمكنني الوصول إلى NSImage
تمثيل الرمز من داخل طلبي؟
شيء مثل ما يلي سيكون مثاليًا:
NSImage * iconImage = [MyApplication defaultIconAsImage];
لكنني متأكد من أنه ليس كذلك الذي - التي سهل :)
بالطبع ، يمكنني الحصول على طريق إلى ملف الأيقونة على النحو التالي:
NSString * iconPath = [[NSBundle mainBundle]
pathForResource:@"MyApp" ofType:@"icns"];
ولكن يبدو لي أنه يجب أن يكون هناك نوع من الطرق القياسية للوصول ال ملف رمز للتطبيق ، بخلاف الاتصال به بالاسم ، لأن الاسم يمكن أن يتغير.
ما هي الطريقة الصحيحة للقيام بهذا العمل؟
المحلول
نصائح أخرى
فقط من أجل الاكتمال - هذه هي الطريقة التي تحصل بها على الرمز لأي تطبيق أو ملف على نظامك.
NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:@"path"];
تمرير في المسار إلى حزمة التطبيق للحصول على أيقونة التطبيق أو المسار إلى ملف للرمز المرتبط بالملف.
لاحظ أن -[NSApplication applicationIconImage]
لا تُرجع الرمز الصحيح عندما يتم لصق أيقونة مخصصة على التطبيق. ثم عليك القيام بذلك:
NSString* appPath = [[NSBundle mainBundle] bundlePath];
NSImage* appIcon = [[NSWorkspace sharedWorkspace] iconForFile:appPath];
(الرجوع إلى رمز أيقونة قفص الاتهام الذي كتبته لـ Chromium: http://src.chromium.org/svn/trunk/src/chrome/browser/ui/cocoa/dock_icon.mm)