1

「Preference Pane」プロジェクトを作成しました。このプロジェクトでは、バンドル リソース フォルダからイメージをロードしたいと考えています。「[NSBundle mainBundle]」は次のように見えるため、これは難しいようです。

27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </Applications/System Preferences.app> (loaded)

「[NSBundle allBundles]」を反復処理すると、プロジェクト バンドルが表示されますが、読み込まれていないように見えます。

27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Mouse.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Sound.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Spotlight.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/TimeMachine.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </Library/PreferencePanes/DivX.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Trackpad.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/UniversalAccessPref.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Dock.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/DateAndTime.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Keyboard.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/MobileMe.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/FibreChannel.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Appearance.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/DigiHubDiscs.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Ink.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Security.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/EnergySaver.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Speech.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </Users/michael/Library/PreferencePanes/MyPrefPane.prefPane> (loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </Users/michael/Code/MyPrefPane/build/Debug/MyPrefPane.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/SharingPref.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Expose.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/SoftwareUpdate.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/ParentalControls.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/PrintAndFax.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Accounts.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/DesktopScreenEffectsPref.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Bluetooth.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Localization.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/StartupDisk.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Network.prefPane> (not yet loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </Applications/System Preferences.app> (loaded)
27/12/10 9:24:18 PM System Preferences[5076]    NSBundle </System/Library/PreferencePanes/Displays.prefPane> (not yet loaded)

ここで何が起こっているのかわかりません。prefpane バンドルにアクセスするにはどうすればよいですか?

4

3 に答える 3

2

[self bundle]メインクラス内で呼び出すと、それが行われます。

于 2010-12-27T11:51:34.627 に答える
1

「[NSBundle bundleForClass:[self class]];」を使用する必要があると思います。

于 2011-10-27T19:50:11.730 に答える
0

遅い回答ですが、完全な解決策を探している人向けです。という名前の prefPane バンドルに画像リソースがある場合はred.png、次を呼び出してリソースをロードできます。

NSImage *redIndicator = [[self bundle] imageForResource:@"red"];
于 2015-03-24T17:05:20.737 に答える