вы можете использовать
$('.buttons').on('click', 'button', function(){
// your magic goes here
});
или
$('.buttons').delegate('button', 'click', function() {
// your magic goes here
});
, эти два метода эквивалентны, но имеют другой порядок параметров.
см .: Событие делегата jQuery
В Info.plist
пропущенные / неверные ключи / строки могут повлиять на первые две проблемы; если ключи дублированы, отсутствуют или установлены неправильно, это, безусловно, может вызвать проблемы с функциональностью.
Отсутствует
NSPrincipalClass
CFBundleInfoDictionaryVersion
CFBundleSupportedPlatforms
[1162] [ 1163] CFBundlePackageType
CFBundleExecutable
(это двоичный файл внутри папки MacOS) CFBundleLocalizations
(необязательно) DTXcode
(необязательно) DTPlatform
(опционально) DTSDK
(опционально) DTCompiler
(опционально) ] Неверно
CFBundleIdentifier
(должно быть в обратном формате DNS) CFBundleVersion
(дубликат / неверно) CFBundleSignature
(неверно ) ПРИМЕЧАНИЯ : имя приложения MyApp.app
не обязательно должно совпадать с исполняемым файлом в папке MacOS
, если Вы добавили и установили ключ CFBundleExecutable
. Значок приложения может быть любым именем, которое вы хотите, ключ к его работе - включение дополнительных CoreFoundation
клавиш, показанных выше, установленных правильно.
После того, как вы отсортировали все недостающие / неправильные ключи, вы должны получить что-то похожее на:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>MyApp</string>
<key>CFBundleIconFile</key>
<string>MyIcon</string>
<key>CFBundleIdentifier</key>
<string>com.company.MyApp</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>MyApp</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>10B61</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>18B71</string>
<key>DTSDKName</key>
<string>macosx10.14</string>
<key>DTXcode</key>
<string>1010</string>
<key>DTXcodeBuild</key>
<string>10B61</string>
<key>LSMinimumSystemVersion</key>
<string>10.13</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2019 MyApp. All rights reserved.</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>
* Выше Info.plist
должен работать с вашим приложением, так как значения соответствуют тому, что вы показали в своем вопросе.
Относительно i18n
тестирования - Internationalization and Localization Guide
секции Testing Your Internationalized App
и Managing Strings Files Yourself
должны быть полезными. В Руководстве содержится огромное количество информации; Один подход подходит для всех подходов к тестированию, как правило, не подходит, поэтому вы захотите найти то, что лучше всего подходит для вас.
→ Справочник по ключам списка свойств информации
blockquote>
→ Об интернационализации и локализации