рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рди!
рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВрдиреЗ
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдореЗрдВ рдЦрд┐рдбрд╝рдХреА рдХреЗ рд╢реАрд░реНрд╖рдХ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдФрд░ рдХреНрдпреВрдЯреА рдФрд░ рдХреЛрдХреЛ рдХреА рдмрд╛рддрдЪреАрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╡рд┐рд╖рдп рдХрд╛ рдереЛрдбрд╝рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреНрдпреВрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдПрдХреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреЛрдХреЛ рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдХрд╛рд░реНрдмрди рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдЯреА рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдмрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдкреБрд░рд╛рдирд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдЪрд░рдо рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рдПрдХ рдирд┐рдпрдорд┐рдд рдХреНрдпреВрдЯреА рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдРрдкреНрдкрд▓ рдПрдЪрдЖрдИрдЬреА рдХреЗ рд╕рд╛рде рдХрдИ рд╡рд┐рд╕рдВрдЧрддрд┐рдпрд╛рдВ рд╣реИрдВред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЧреЛрджреА рдореЗрдВ рдЖрдЗрдХрди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмреИрдЬ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдбреЙрдХ рдореЗрдиреВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ рдпрд╛ рдкреЙрдкрдкреА рдореЗрдиреВ рдореЗрдВ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рдЯрд╛рдПрдВ / рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░реЗрдВред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрджрд┐ рдЖрдкрдХреЛ рдЧреЛрджреА рдореЗрдВ рд╕реВрдЪрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдПрдХ рд▓рд╛ рд╕реНрдХрд╛рдЗрдк) рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЧреЛрджреА рдореЗрдВ рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдЕрдкрдиреЗ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рдЧреЛрджреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдореЗрдиреВ рднреА рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдореИрдХ рдУрдПрд╕ рдХреЗ рдореВрд▓ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ? рдЗрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рдирд┐рдпрдорд┐рдд рдпрд╛ рдЕрд░реНрдз-рдкреНрд░рд▓реЗрдЦрд┐рдд рдХреНрдпреВрдЯреА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдХреЗрд╡рд▓ рдХреЛрдХреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдЙрджреНрджреЗрд╢реНрдп-рд╕реА ... рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?
рдЙрджреНрджреЗрд╢реНрдп-рд╕реА ++ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧрд╛!
рдпрд╣ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдЬрд╛рдирд╡рд░ рд╣реИ рдФрд░ рдпрд╣ рдХрд┐рд╕рдХреЗ рд╕рд╛рде рдЦрд╛рддрд╛ рд╣реИ? рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдФрд░ рд╕реА ++ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдПрдХ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╢реАрд░реНрд╖рдХреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдорд╛рдирдХ (.h) рд░рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдорд┐рдореА рддрд╛рдХрд┐ рд╕рдВрдХрд▓рдХ рдЗрд╕реЗ рдЦрд╛ рдЬрд╛рдП рдФрд░ рдЪреЛрдХ рди рд╣реЛред
рдЕрдм рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Qt рдХреЗ рд╕рд╛рде рд▓рд┐рдЦреА рдЧрдИ рдХреБрдЫ (рд╢рд╛рдпрдж рдПрдХ рдмрдбрд╝реА рднреА) рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдпрд╛ рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдЗрд╕реЗ рдореИрдХреНрд░реЛрдЬрд╝ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдВрджрд░ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ, рддрд╛рдХрд┐ рдЦрд╕рдЦрд╕ тАЛтАЛрдЙрддреНрдкрд╛рджрдХреЛрдВ рдХреЛ рдЗрд╕ рд░рд╛рдХреНрд╖рд╕ рдХреА рдирдЬрд░ рдореЗрдВ рдЕрдкрдиреА рдирд╛рдХ рдирд╣реАрдВ рдЭрдкрдХреЗред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Apple HIG рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЯреНрд╡рд┐рд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд╣реАрдВ рднреА, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд░рд╣реЗрдЧрд╛, рдореИрдВ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧреА Q_WS_ * рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо рдЙрди рд╕рд╛рдзрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдирдП рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдХреНрдпреВрдЯреА рдкрд░ рдореИрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреИрд╕реЗ рдмрдирд╛рдПрдВ - рдпрд╣ рд▓рдХреНрд╖реНрдпреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ)ред
рддреЛ рдЪрд▓рд┐рдП рдХреНрд░рдо рдореЗрдВред
рд╕рд╛рдорд╛рдиреНрдп рдПрдХреАрдХрд░рдг
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдирд╛рдо рдФрд░ рдЖрдЗрдХрди рджреЗрдВред рдирд╣реАрдВ, рд╡рд╣ рдирд╛рдо рдЬреЛ рдмрдВрдбрд▓ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣ рдирд╛рдо рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдиреВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдкрдиреА Info.plist рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рди рдХрд┐ рдЙрд╕ qmake рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреАред рдпрд╣ .pro рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
macx: QMAKE_INFO_PLIST = MyInfo.plist
рд╣рдорд╛рд░реЗ .plist рдореЗрдВ рд╣рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
<?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>LSHasLocalizedDisplayName</key> <true/> <key>CFBundleIconFile</key> <string>myicon.icns</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleGetInfoString</key> <string>Created by Qt/QMake</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleExecutable</key> <string>MyAppName</string> <key>CFBundleIdentifier</key> <string>com.mycompany.myapp</string> <key>NOTE</key> <string>This file was generated by Qt/QMake.</string> </dict> </plist>
рдмреЗрд╢рдХ, "MyAppName" рдФрд░ "com.mycompany.myapp" рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рдирд╛рдо рдФрд░ рдЗрд╕рдХреЗ рдмрдВрдбрд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВ рдЕрдВрдЧреНрд░реЗрдЬреА? рд╣рд╛рдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕реВрдЪреА рдореЗрдВ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: LSHasLocalizedDisplayNameред рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ "ru.lproj" рдФрд░ рдлрд╝рд╛рдЗрд▓ InfoPlist.strings рдмрдирд╛рдПрдБред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
CFBundleName = " "; CFBundleDisplayName = "";
рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдВрдбрд▓ рдХрд╛ рд╕реНрдерд╛рдиреАрдп рдирд╛рдо рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдиреВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ AppName.app/Contents/Resources рдкрд░ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛, .pro рдлрд╝рд╛рдЗрд▓ рдореЗрдВ INSTALLS рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреГрдкрдпрд╛ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП qmake рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВред рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдиреВ рдореЗрдВ рдПрдХ рд░реВрд╕реА рдирд╛рдо рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдмрдВрдбрд▓ рдХрд╛ рд▓реИрдЯрд┐рди рдореЗрдВ рдПрдХ рдирд╛рдо рд╣реИред

рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрдЗрдХрди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (MyInfo.plist рдлрд╝рд╛рдЗрд▓ рдореЗрдВ myicon.icns рджреЗрдЦреЗрдВ), рд╣рдореЗрдВ рдПрдХ .icns рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдПрдбрд┐рдЯрд░ рдореЗрдВ рдЦреБрдж рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕реЗ .ico рдпрд╛
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпрд╛
рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ .png рдХреЗ рдЭреБрдВрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░
рд╕рдХрддреЗ рд╣реИрдВ ред рдЖрдЗрдХрди рдХреЛ рдЕрдЪреНрдЫрд╛ рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдХрдИ рдЖрдХрд╛рд░реЛрдВ рдореЗрдВ рдмрдирд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ: 512x512, 256x256, 128x128, 64x64, 48x48, 32x32, 16x16ред рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рдпрдВ рдЪреБрди рд▓реЗрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд┐рд╕ рдЖрдХрд╛рд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реИред рдЖрдЗрдХрди рд╡рд╛рд▓реА рдлрд╛рдЗрд▓ рдХреЛ рд░рд┐рд╕реЛрд░реНрд╕ рдореЗрдВ рднреА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд .pro рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реИ:
macx: ICON = myicon.icns
рдХреЛрдб рдЬреБрджрд╛рдИ
рдЙрджреНрджреЗрд╢реНрдп-рд╕реА ++ рдХреА рдХрдИ рд╕реАрдорд╛рдПрдВ рд╣реИрдВред рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, .cpp рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рд╡рд░реНрдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реЗрдбрд░ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдЪреЛрдХ рд╣реЛрдЧрд╛ред рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╕рднреА рд╕реА ++ рдХреЛрдб рдХреЛ .mm рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬреАрд╡рди рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди Qt рдХрд╛ рдЕрд░реНрде рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдорд╛рди рд▓реЗрдВрдЧреЗ рдХрд┐ рд╣рдорд╛рд░рд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдЕрднреА рднреА .cpp рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реИред
рдмрд╛рд╣рд░ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╕рд░рд▓ рд╣реИред рдЖрдкрдХреЛ C ++ рдореЗрдВ Objective-C рдХреЙрд▓реНрд╕ рдФрд░ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реИрдкрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЪреБрдирд╛: рдПрдХ рдХреНрдпреВрдЯреА / рд╕реА ++ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реНрд╡рдпрдВ рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЛ "рдкреНрд░рддрд┐рдирд┐рдзрд┐", рдПрдХ рдирд┐рдЬреА рд╡рд░реНрдЧ рдЬреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХреЛрдХреЛ / рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рд╣рдореЗрдВ рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓реЗрдВ рдорд┐рд▓рддреА рд╣реИрдВ:
* myclass.h - рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХреЗ рд╣реЗрдбрд░
* myclass.cpp - рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
* myclass_p.h - рдирд┐рдЬреА рд╡рд░реНрдЧ рд╣реЗрдбрд░ (рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдмрд┐рдирд╛)
* myclass_p.mm - рдирд┐рдЬреА рд╡рд░реНрдЧ рдХреЗ рд╕реНрд░реЛрдд, рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд┐рд╕реА рднреА рд╣реЗрдбрд░ рдЖрджрд┐ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ C ++ рдФрд░ Objective-C ++ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рддреЗ рд╣реИрдВред
рд╡реИрд╕реЗ, рдЙрджреНрджреЗрд╢реНрдп-рд╕реА ++ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, .pro рдореЗрдВ рд╕рднреА рд╣реЗрдбрд░ / рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ OBJECTIVE_HEADERS рдФрд░ OBJECTIVE_SORCES рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕реЗ macx рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдХрд░реЗрдВ: {}ред рдФрд░ рдпрд╣ рднреА, рдЕрдЧрд░ рд╣рдо рдХреЛрдХреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЗрд╕ рд░реВрдкрд░реЗрдЦрд╛ рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо .pro рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
macx: QMAKE_LFLAGS += -framework Cocoa
рдФрд░ рдЕрдм рдордЬрд╛ рдЖрдПрдЧрд╛ред
рдбреЙрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдбреЙрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдкрд╛рдВрдЪ рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдПрдХ рдмреИрдЬ рдЬреЛрдбрд╝рдирд╛, рдПрдХ рдУрд╡рд░рд▓реЗ рдЬреЛрдбрд╝рдирд╛, рдбреЙрдХ рдореЗрдВ рдЖрдЗрдХрди рдкрд░ рдПрдХ рдХреНрд▓рд┐рдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛, рдбреЙрдХ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрдЗрдХрди "рдЯреЙрд╕" рдХрд░рдирд╛ рдФрд░ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдореЗрдиреВ рдЬреЛрдбрд╝рдирд╛ред Qt рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЦрд░рд╛рдм рджрд╕реНрддрд╛рд╡реЗрдЬ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди qt_mac_set_dock_menu (QMenu *) рдХреЗ рд╕рд╛рдеред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЦреБрдж рдХреЛ рдмрд╛рд╣рд░реА рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
extern void qt_mac_set_dock_menu(QMenu *);
рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, "рджреЗрд╢реА" рдореИрдХ рдореЗрдиреВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореЗрдиреВ рдкрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдП рдЧрдП рд╣реИрдВ:
* рдирд┐рд╖реНрдХреНрд░рд┐рдп (рдЕрдХреНрд╖рдо) рдореЗрдиреВ рдЖрдЗрдЯрдо рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ
* QMenuTTHide рдФрд░ aboutToShow рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
* рдЖрдк рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЛ рдЗрдВрдбреЗрдВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ
* рдпрджрд┐ рдореЗрдиреВ рдореЗрдВ рдкрд╣рд▓рд╛ QAction рд╡рд┐рднрд╛рдЬрдХ рд╣реИ, рддреЛ рдпрд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ (рдЕрдиреНрдп рд╕рднреА QMenu рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд)
рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрджреНрджреЗрд╢реНрдп-рд╕реА / рдХреЛрдХреЛ рдкрд░ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ QActions рдФрд░ рдореВрд▓ рдореЗрдиреВ рдЖрдЗрдЯрдо рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рддрдВрддреНрд░ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЕрдЧрд░ рдЗрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЕрдм рдбреЙрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЕрдЧрд░ рд╣рдо рдХреЛрдХреЛ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдпрд╣ рдЖрд╡реЗрджрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред ShouldHandleReopen: hasVanishWindows: AppDelegate рдореЗрдВ рд╡рд┐рдзрд┐ред рд▓реЗрдХрд┐рди Qt рдХреЗ рдЖрдВрддреЛрдВ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рдкрд╛рд╕ рд╣рдорд╛рд░реА рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП
рд░рдирдЯрд╛рдЗрдо рдХреЗ рдЬрд╛рджреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╣рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреА рдирд┐рдЬреА рдХрдХреНрд╖рд╛ рдХреЛ рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ (рд╡реИрд╕реЗ рднреА, рд╣рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХреА рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд╕реНрддреБ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ) рдФрд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд┐рдЦреЗрдВ:
void dockClickHandler(id self, SEL _cmd) { Q_UNUSED(self) Q_UNUSED(_cmd) MyPrivate::instance()->emitClick(); }
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдП рдмрд┐рдирд╛ рдореГрдд рд╣реИред рдЪрд▓реЛ рдЗрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдХреЛрдЪ рдирд╣реАрдВ рд╣реИ!
MyPrivate::MyPrivate() : QObject(NULL) { Class cls = [[[NSApplication sharedApplication] delegate] class]; if (!class_addMethod(cls, @selector(applicationShouldHandleReopen:hasVisibleWindows:), (IMP) dockClickHandler, "v@:")) NSLog(@"MyPrivate::MyPrivate() : class_addMethod failed!"); } void MyPrivate::emitClick() { emit dockClicked(); }
рдпрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╡рд░реНрдЧ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдордХреНрдЦреА рдкрд░ рдЗрд╕рдХреА рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдФрд░ рдЙрд╕реА рд╕рдордп, рд╣рдо emitClick () рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдХреНрд▓рд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Qt рд╕рдВрдХреЗрдд рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдм, рдЕрдм рд╣рдо рдЧреЛрджреА рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд┐рдВрдбреЛред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрдЗрдХрди рдХреЛ рдбреЙрдХ рдореЗрдВ рдЯреЙрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░: "QApplication :: рд╕рддрд░реНрдХ (QWidget *) рдПрдХ рд╣реА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ!" рд╕реЛрдЪрд╛ рд╕рдЪ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдЖрд╢рд╛рд╡рд╛рджреА рд╣реИред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ 10.6 рдореЗрдВред * рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ 10.7 рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред * рдпрд╣ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдХреНрдпреВрдЯреА 4.7.x рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рд╢реЗрд░ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 4.8 рдореЗрдВ рдпрд╣ рддрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛)ред рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдмрд╕ рдХреЛрдХреЛ рдкрд░ рдПрдХ рдЯреЙрд╕ рд▓рд┐рдЦрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
void MyPrivate::requestAttention() { [NSApp requestUserAttention: NSInformationalRequest]; }
рдФрд░ рдХреЛрдб рдХреЗ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ Qt-shn рдЕрд▓рд░реНрдЯ () рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рджреЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ Mac OS X рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдФрд░ рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрднреА рднреА рдЕрд▓рд░реНрдЯ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм рд╣рдо рдмреИрдЬ рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рд▓рд╛рд▓ рд╡реГрддреНрдд рд╣реИ, рдЬреЛ рдбреЙрдХ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрдЗрдХрди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдкрд╛рда рдХреЗ рд╕рд╛рде рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Mail.app рдореЗрдВ рдЕрдкрдард┐рдд рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Apple рдХрд╛ рдкреНрд░рд▓реЗрдЦрди рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
[[NSApp dockTile] setBadgeLabel: badgeString];
рдпрд╣рд╛рдВ рдмреИрдЬрд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯрд╛рдЗрдк NSString * рд╣реИред рд╣рд╛рдБ, рдпрд╣ рдкрд╣рд▓реА рдЕрд╕реБрд╡рд┐рдзрд╛ рд╣реИ! Qt рдореЗрдВ, QString рдХреЛ рдЖрдорддреМрд░ рдкрд░ рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд "рдХрдирд╡рд░реНрдЯрд░" рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдЙрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рд╕реЗ), рд▓реМрдЯрд╛ рд╣реБрдЖ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдореЗрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдХреНрдпреВрдЯреА рдПрдЖрд░рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдореЗрдореЛрд░реА рдХреА рдирд┐рдЧрд░рд╛рдиреА рдЦреБрдж рдХрд░реЗрдВрдЧреЗ)ред
рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдирд┐рдЬреА рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдХрд╛рд░реНрдп рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдбреЙрдХ рдХреЗ рдмреИрдЬ рдореЗрдВ рд╣рдорд╛рд░реА рдЬрд╝рд░реВрд░рдд рдХреА рд░реЗрдЦрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛:
void MyPrivate::setDockBadge(const QString & badgeText) { NSString * badgeString = nsStringFromQString(badgeText); [[NSApp dockTile] setBadgeLabel: badgeString]; [badgeString release]; }

рдЕрдм рдбреЙрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрдВрддрд┐рдо рдкрд╣рд▓реВ рдбреЙрдХ рдореЗрдВ рдПрдХ рдордирдорд╛рдирд╛ рдУрд╡рд░рд▓реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
[[NSApp dockTile] setContentView: view];
рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВ NSView * рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдХреНрдпреВрдЯреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ! рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдУрд╡рд░рд▓реЗ рдореЗрдВ QWidget * рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред QWidget рд╕реЗ рдЗрд╕рдХрд╛ NSView рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ? рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдп рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
NSView * nsViewFromWidget(QWidget * w) { return (NSView *)w->winId(); }
рдпрд╣ рд╕рд░рд▓ рд╣реИ, рдХреНрдпреВрдЯреА рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдиреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕рднреА рдХрд╛рдо рдХрд┐рдП рд╣реИрдВред

рд▓реЗрдХрд┐рди, рдЕрдлрд╕реЛрд╕, рдПрдХ рдмреБрдореЗрд░ рд╣рдореЗрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ: QWidget рд╕реЗ рдкреНрд░рд╛рдкреНрдд NSView рдбреЙрдХ рдореЗрдВ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, NSDockTile рдЗрд╕реЗ рдЦрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбреЙрдХ рдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдмрдирддрд╛ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ рд▓реЗрдХрд┐рди рдХреНрдпреВрдЯреА рдХреНрд░рд┐рдПрдЯрд░ рдореЗрдВ рднреА, рдбреЙрдХ рдореЗрдВ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЛ рдЗрд╕рдХреЗ рд╢реБрджреНрдз NSView рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдареАрдХ рд╕реЗ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдУрд╡рд░рд▓реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреЛрдХреЛ рдореЗрдВ рдЕрдкрдирд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдЕрдлрд╕реЛрд╕ред
рдореЗрдиреВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдЪрд▓реЛ рдЦрд╕рдЦрд╕ тАЛтАЛрдореЗрдиреВ (рд╢реАрд░реНрд╖ рдкреИрдирд▓ рдкрд░ рдПрдХ) рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, Qt рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрд╕реЗ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рд╕рд┐рд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдорд╛рдирдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдиреВ рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред Qt рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рдорди рдореЗрдВ рдЖрддреА рд╣реИ рд╡рд╣ рд╣реИ QMenuBarред рджрд░рдЕрд╕рд▓, рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЦрд╕рдЦрд╕ тАЛтАЛрдореЗрдиреВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ: рдпрд╛ рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ QMenuBar рдмрдирд╛рдПрдВ, рдпрд╛ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдмрдирд╛рдПрдВред рд╣рдо рдЗрд╕рдХреЗ рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж рдлрд╛рдпрджреЗ рдХреЗ рдХрд╛рд░рдг рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВрдЧреЗред
рдлрд┐рд░ рд╕реЗ, рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдореЗрдВ рдПрдХ рд╢реВрдиреНрдп рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рд╛рде QMenuBar рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, QMenuBar * macMenuBar = рдирдпрд╛ QMenuBar (NULL), рддрдм рдпрд╣ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЛрдЧрд╛ред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдП рдЧрдП рдореЗрдиреВ рдмрд╛рд░ рдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдФрд░ рдЕрдм - рд╣рд╛рдереЛрдВ рд╕реЗ рдмрд╣реБрдд рдиреАрд░рд╕ рдХрд╛рдоред рд╣рдо "рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ", "рдлрд╝рд╛рдЗрд▓", "рд╕рд╣рд╛рдпрддрд╛" рдореЗрдиреВ рдФрд░ рдЗрддрдиреЗ рдкрд░ рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдХрдард┐рди рдХрд╛рдо рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд▓рдЧреЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рдирдХ рд╢реЙрд░реНрдЯрдХрдЯ andW рдФрд░ willM рдХреНрд░рдорд╢рдГ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЛ рдмрдВрдж рдФрд░ рдХрдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рджрдо рдкрд░ рднреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдареАрдХ рд╣реИ, рдХрдо рд╕реЗ рдХрдо haveQ рддреБрд░рдВрдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред

рдореИрдВ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдореЗрдВ QActions рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╢реЙрд░реНрдЯрдХрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ .M рд╢реЙрд░реНрдЯрдХрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП QKeySequence рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ "Ctrl + M" рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЦрд╕рдЦрд╕ тАЛтАЛрдХреЗ рддрд╣рдд Qt рдореЗрдВ in рдХреБрдВрдЬреА Ctrl рдХреА рддрд░рд╣ рд╣рд░ рдЬрдЧрд╣ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдореЗрдЯрд╛ рдХреА рддрд░рд╣ Ctrl рдХреБрдВрдЬреАред рд╕рдВрднрд╡рддрдГ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреА рдЖрд╕рд╛рди рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдПред
рдЦреИрд░, рдореЗрдиреВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
* рдЖрдк рдореЗрдиреВ рдЖрдЗрдЯрдо рдЗрдВрдбреЗрдВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ
* QMenuToHide рд╕рд┐рдЧреНрдирд▓ (рдХреЗрд╡рд▓ aboutToShow) рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
* рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрдЧ рдЬрдЧрд╣ рд▓реЗрддрд╛ рд╣реИ: рдпрджрд┐ рдорджрдж рдореЗрдиреВ рдХреЛ "рд╕рд╣рд╛рдпрддрд╛" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореЗрдиреВ рдЖрдЗрдЯрдо рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдмреНрд▓реЙрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд░реВрд╕реА рдореЗрдВ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рднрд▓реЗ рд╣реА рд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рд░реВрд╕реА рд╣реЛ ред рдЗрд╕ рдЧрдбрд╝рдмрдбрд╝ рд╕реЗ рдХреИрд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВ, рдореБрдЭреЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред
рд▓рдЧрднрдЧ рдЕрдВрддрд┐рдо - Qt рдореЗрдВ рдХрд╕реНрдЯрдо рд╡рд┐рдВрдбреЛ рд╢реАрд░реНрд╖рдХ
рдореИрдВрдиреЗ
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ Qt рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЬреЛ рдХреБрдЫ рд▓рд┐рдЦрд╛ рдерд╛, рдЙрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд╣рд╛рдБ рдмрдирд╛рдП рд░рдЦрдирд╛ / рдЬрд╛рд░реА рдХрд░рдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдЖрд░рд╕реА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рджреВрд╕рд░реА рдмрд╛рдд, рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА ++ рдореЗрдВ, рдпрд╣ рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рд╢реБрджреНрдз рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдПрдХ рдХреНрд▓рд╛рд╕ рд▓реЗрдирд╛ рдЕрдЧрд░ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдлреЙрд░рд╡рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
id _class = [NSThemeFrame class];
рдпрд╣ рд╣рдореЗрдВ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡рд┐рдВрдбреЛ рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдХреЛрдб рдХреЛ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЖрдк рдЗрд╕реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдиреАрдЪреЗ рд▓рд┐рдВрдХ)ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА ++ рдХреА рдЬрд╛рдВрдЪ рдХреА, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдореЗрдВ рдПрдХ рдХреНрдпреВрдЯреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдЯреА + рдХреЛрдХреЛ рдмрдВрдбрд▓ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмрдбрд╝реЗ рдФрд░ рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдФрд░ рдХреЛрдХреЛ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рд╣реИрдВред рдЖрдкрдХреЛ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рд░реБрдЪрд┐ рд╣реИ, рддреЛ
GitHub рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд
рд╣реИ !
рдкреБрдирд╢реНрдЪ: рдХреЛрдИ рднреА рдЧреНрд░реЛрде рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╕реВрдЪрдирд╛рдУрдВ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рдардХ рд╕реНрд╡рдпрдВ рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЙрд╕рдиреЗ рд╕рд╛рдордЧреНрд░реА рд╕реАрдЦреА рд╣реЛред