mac app代ç å¸å±
Xcodeæ¯å¼åMacåºç¨è½¯ä»¶çå©å¨!å»è¹æå®ç½æ³¨åAppleIDï¼ç»å½å¼åè ä¸å¿å¯ä»¥å è´¹ä¸è½½ã(ä½ ä¹å¯ä»¥ä½¿ç¨AppCodeï¼ä¸ä¸ªç¬¬ä¸æ¹çä»è´¹ç Objective-CãSwift çéæå¼åç¯å¢)é¦æ¬¡å¯å¨Xcodeï¼éæ©Create a new Xcode projectï¼(éé¦æ¬¡è¿è¡Xcodeï¼ä»èåFile-New->Project) è¿å ¥å·¥ç¨æ¨¡çéæ©çé¢
éæ©OSX->Application->Cocoa Application
è¾å ¥å·¥ç¨å称HelloWorldï¼å¼åè¯è¨éæ©Objective-Cã
å®æ第ä¸ä¸ªå·¥ç¨çå建ã
Xcodeå·¥ä½åº
å·¥å ·æ :æä¾ä¾¿æ·çåè½æé®å ¥å£ãå æ¬è¿è¡å·¥ç¨ï¼ç»æ¢å·¥ç¨çæ常ç¨çåè½æé®ãæå³è¾¹æ¯3个ä¸åæ¹åçå·¥ä½åºå¼å ³æé®ãç¹å»å¯ä»¥æå¼æå ³éä¸åæ¹åç侧边æ åºåã
å·¥ç¨ç»æ导èªåº:ä½äºæ左边åºåï¼å¯ä»¥æ¹ä¾¿çæµè§å·¥ç¨æææ件ã
å·¥ç¨Targeté ç½®åº:æ6个åç±»çåæ¢tabï¼ç®¡çå·¥ç¨åç§é ç½®ã
xibç»æ导èªåº:ç¹å»åæ¢ä¸åçæ§ä»¶ï¼æ¹ä¾¿inspector
Assistant Editor:管ç代ç åxibæä»¶å ³è
inspectoré¢æ¿åº:ä½äºæå³è¾¹ï¼è½æ¹ä¾¿ç对å½åéä¸çå 容è¿è¡ç®¡ç设置
æ§ä»¶å·¥å ·ç®±:xib设计çé¢éè¦çåç§æ§ä»¶åº
1.xibç¸å ³å·¥ä½åº
xibç»æ导èªåºï¼xibçé¢è®¾è®¡åºï¼xib inspectoré¢æ¿åºï¼æ§ä»¶å·¥å ·ç®±ï¼Assistant Editorï¼ è¿è¡xibçé¢è®¾è®¡æ¶å¿ é¡»çç»ä½¿ç¨
2.inspectoré¢æ¿åº
åæ8个åè½åºï¼ç¹å»ä¾æ¬¡å¯ä»¥çå°Fileï¼QuickHelpï¼Identityï¼Attributesï¼Sizeï¼Connectionsï¼Bindingsï¼View Effectsåºã
Identity: å¦ææ§ä»¶ä½¿ç¨èªå®ä¹çç±»ï¼éè¦ä»Classä¸æå表ä¸éæ©
Attributes:ç¨æ¥å¯¹æ¯ä¸ªæ§ä»¶ä¸åé£æ ¼æ ·å¼å±æ§è®¾ç½®
Connections:ç¨æ¥æ§ä»¶ååºçäºä»¶è®¾ç½®ï¼æ§ä»¶å¯¹åºçOutletåéç»å®
3.Assistant Editorå·¥ä½åº
ä»å·¥ç¨ç»æ导èªåºéæ©è¦ç¼è¾çxibæ件ï¼ç¹å»èåView->Assistant Editor->Show Assistant Editoråï¼Assistant Editoråºåºç°ãå³ä¾§åºç°ä»£ç ç¼è¾é¢æ¿ï¼å¯ä»¥è¾ å©å®ææ§ä»¶çäºä»¶Actionï¼Outletåéè·ä»£ç çç»å®ã
å·¥ç¨ç»æ
æ们æ¥ççä¸å¼å§å»ºç«çHelloWorldè¿ä¸ªå·¥ç¨çç»æé¨åã
æ左边æ¯æ å½¢ç导èªç®å½ï¼å¯ä»¥ç¹å»åæ¢å°ä¸åç代ç æ件æèµæºç®å½è¿è¡ç»ä¸ç®¡çã
ç®å½æ 顶é¨æ ¹èç¹ä¸ºå·¥ç¨å称ï¼éä¸ååå»å¯ä»¥ä¿®æ¹å·¥ç¨å称ãéé¢2级ç®å½ä¾æ¬¡ä¸ºHelloWorldï¼HelloWorldTestsï¼Products.ææçéé级çå ç´ é½å¨ç¬¬ä¸ä¸ªHelloWorldç®å½éé¢ã
åç®å½HelloWorldéé¢AppDeleageæ¯åºç¨ç代çï¼åºç¨å¯å¨å第ä¸ä¸ªçé¢é½æ¯ç±è¿ä¸ªæ件æ§å¶çã
AppDelegate
AppDelegate.h
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject
@end
AppDelegate.m
#import âAppDelegate.hâ
@interface AppDelegate ()
@property (weak) IBOutlet NSWindow *window;
@end
@implementation AppDelegate
(void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
}
(void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
}
@end
å¨AppDelegate.h ç³æäºåºç¨ä»£çAppDelegateç±»ï¼å®å¿ 须继æ¿NSApplicationDelegateåè®®ã
AppDelegate.m ä¸å®ç°äºapplicationDidFinishLaunching å applicationWillTerminate 2个代çæ¹æ³ãapplicationDidFinishLaunchingä¸å¯ä»¥åä¸äºåºç¨å¯å¨åçåå§åå¤çãåºç¨éåºåå¯ä»¥å¨applicationWillTerminateä¸åä¸äºå ¨å±æ§æ°æ®åº/å å/èµæºçæ¸ çéæ¾ã
AppDelegate.m ä¸ è¿å¨æ¥å£ä¸å£°æäºä¸ä¸ªNSWindow *windowçXIBæ件çIBOutletè¾åºåéãè¿æ ·å°±å¯ä»¥å¨AppDelegateä¸ç´æ¥æä½æ§å¶windowãæ¯å¦è¯´è®¾ç½®windowçèæ¯é¢è²ï¼titleæ é¢ï¼ä½ç½®ï¼å¤§å°çãXcodeèªå¨çæç代ç ä¸æ²¡æ对windowåä»»ä½æ§å¶ï¼å æ¤å é¤è¿ä¸ªIBOutletç±»åçwindowå®ä¹ä¹æ¯å¯ä»¥çã
Images.xcassets
è¿ä¸ªæ件夹ä¸å¯¹å·¥ç¨ä¸ä½¿ç¨çå¾çèµæºå¯ä»¥ç»ä¸ç®¡çãå ¶ä¸Xcodeä¼é»è®¤å建ä¸ä¸ªAppIconçå¾çèµæºå为AppIconæ¯åºç¨çå®è£ å¾æ ã
请ç¹å»è¾å ¥å¾çæè¿°
å¯ä»¥ä¾æ¬¡çå°5ç§å°ºå¯¸å¤§å°çiconå¾çï¼æ¯ä¸ç§é½éè¦1x 2x 两ç§è§æ ¼å¤§å°çå¾çãæ¯å¦ptç å°±éè¦å°x åX åç´ çå¾çåå«æå ¥å°1xï¼2xçè线ä½ç½®æ¡éé¢ãä½æ¯å¨è¿é设置AppIconé常ä¸æ¹ä¾¿ï¼ä½ ä¼çå°å½åçå·¥ä½åºä¸æå¤è½æ¾ç¤º2ç§è§æ ¼çï¼å ¶ä»3ç§æ ¹æ¬çä¸å°ï¼å³ä½¿ä½ æå·¥ä½å»æ大æå¤åªè½çå°ç¬¬3ç§è§æ ¼çä¸åãåé¢æ们ä¼è¯´ææä¹éè¿å ¶ä»æ¹å¼è®¾ç½®Appçå®è£ åå¯å¨åå¨ç³»ç»ä¸æ¾ç¤ºçåºç¨å¾æ ã
å¯ä»¥ç¹å»åºé¨ï¼èåæé®å建èªå·±çImage Setï¼åå»å¯ä»¥ä¿®æ¹Image Setçååãé¤äºAppIcon以å¤ï¼å ¶ä»æ®éçå¾æ èµæºé½æ1x 2x 3x ä¸ç§å¤§å°è§æ ¼ã
MainMenu.xib
è¿ä¸ªxibæ件æ¯å¾å ³é®çä¸ä¸ªç¨åºèµæºæ件ãåºç¨å¯å¨ççé¢ï¼åºç¨çèåé½å®ä¹å¨å ¶ä¸ãå½ç¶ä½ å®å ¨å¯ä»¥ä¸ä½¿ç¨è¿ä¸ªæ件ååºç¨çåå§åçé¢ï¼å®å ¨å¯ä»¥ä½¿ç¨çº¯ä»£ç æ§å¶ï¼è¿ä¸ªæ们å¨åç»çç« èå¨è¯¦ç»è¯´æã
ç¹å»HelloWorldçªå£ï¼æå³è¾¹ä¼åºç°æ§å¶é¢æ¿ï¼éè¿é¡¶é¨çä¸åå¾æ æé®æ¥åæ¢å°ä¸ååè½æ§å¶åºã
AutoLayout
请ç¹å»è¾å ¥å¾çæè¿°
Use Auto Layoutéä¸è¡¨ç¤ºä½¿ç¨èªå¨å¸å±æºå¶æ¥æ§å¶çé¢ä¸å ç´ çå¸å±æ¹å¼ãç¸å¯¹äºèªå¨å¸å±çå¦å¤ä¸ä¸ªæ¹å¼å°±æ¯åæ å¼å¸å±ï¼å¿ é¡»ç±ä»£ç æ¾ç¤ºçæå®UI å ç´ ä¹é´çåæ ä½ç½®å ³ç³»ãAutoLayoutæ¯è¹ææ¨èçå¸å±æ¹å¼ï¼æ们åç»ç代ç 示ä¾ä¹åºæ¬ä¸ä½¿ç¨èªå¨å¸å±æ¥è¯´æã
ç±»
请ç¹å»è¾å ¥å¾çæè¿°
æ¯ä¸ç§çé¢å ç´ é½æ¯ç³»ç»é»è®¤çæ åç±»ãå¦ææ³ä½¿ç¨èªå®ä¹çç±»ï¼å¯ä»¥å¨è¾å ¥ä½ çèªå®ä¹ç±»åãè¿æ ·xibæ件被å è½½çæ¶åä¼ä½¿ç¨ä½ å®ä¹çç±»ä¸çåå§åæ¹æ³å®æç±»å è½½ã
å±æ§
请ç¹å»è¾å ¥å¾çæè¿°
ç¹å»HelloWorldçªå£ï¼å¦ä¸å¾åæ¢å°å®çå±æ§é¢æ¿åºãå ¶ä¸titleå段å¯ä»¥ä¿®æ¹windowçæ é¢ãTitle Bar éä¸è¡¨ç¤ºwindowæ¯å¸¦æ顶é¨æ é¢ï¼åæ¶éä¸çè¯ï¼çªå£é¡¶é¨çæ é¢ä¼æ¶å¤±ãè¿æä¸ä¸ªå ³é®çVisible At Launchéä¸ï¼è¡¨ç¤ºåºç¨å¯å¨æ¶çªå£èªå¨æ¾ç¤ºã å¦æä½ åæ¶éä¸å®ï¼å¨è¿è¡Helloworldå·¥ç¨ä¼åç°ï¼åºç¨å¯å¨çªå£ä¸è§äºï¼åªæ顶é¨çèåäºã
å¯ä»¥éè¿ä»£ç 让å®å次åºç°ï¼å¨AppDelegateçapplicationDidFinishLaunchingä¸è°ç¨makeKeyAndOrderFrontæ¹æ³
(void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
[self.window makeKeyAndOrderFront:self];
}
Size
请ç¹å»è¾å ¥å¾çæè¿°
è¿éå¯ä»¥æ§å¶Windowç大å°ï¼æ大(Max)æ(å°Min)çé«åº¦/宽度ã设置äºæ大æå°é«åº¦/宽度åä¼å½±ååºç¨å¯å¨ä¼éè¿é¼ æ å»æé¿æé«windowçèå´ï¼è¿ä¸ªèªå·±ä¿®æ¹å¯ä»¥éªè¯ä¸ã
Connections
请ç¹å»è¾å ¥å¾çæè¿°
ç¹å»Xcode顶é¨Viewèåä¸Assistant Editoréæ©Show Assistant Editorå¼åºç±»çå®ä¹æ件AppDelegateã
请ç¹å»è¾å ¥å¾çæè¿°
ä»»ä½æ³éè¿ä»£ç ä¿®æ¹UIçé¢ä¸å ç´ çå±æ§/è¡ä¸ºå¨ä½æ¶ï¼é½éè¦å¯¹xibä¸çUIçé¢å ç´ å½åãå¨è¿é¢æ¿Referencing Outletsé¨åï¼ç¹å»New Referencing Outlet å³ä¾§çå°åï¼æå¨è¿ä¸ªå°åå°ç±»å®ç°ä»£ç æ件AppDelegateä¸@interfaceå®ä¹åºï¼å¨å¼¹åºççªå£è¾å ¥åéå称ï¼å®æçé¢UIå ç´ ç»å®å°Outletç±»åçåéä¸ãè¿æ ·å°±å¯ä»¥ä½¿ç¨è¿ä¸ªåéå®æ对UIå ç´ çåç§æ§å¶ã
Supporting Files
info.plist
请ç¹å»è¾å ¥å¾çæè¿°
å·¥ç¨åºæ¬ä¿¡æ¯plistæ件ãplistæ¯appleçï¼keyï¼typeï¼value)å½¢å¼æè¿°çæä»¶æ ¼å¼ï¼ç»å¸¸ç¨æ¥æè¿°é 置信æ¯ã
Icon fileï¼å¯ä»¥å¨è¿ä¸ªå段è¾å ¥icnsæ ¼å¼çæ件å为AppIconå¾æ ã
å建ä¸ä¸ªæ件夹ï¼æ件夹åååç¼ä¸ºiconsetï¼å°xçä¸å¼ 大å¾éè¿å·¥å ·è½¯ä»¶æè æ工缩æ¾æå¦ä¸å¾çåç§å°ºå¯¸å å°è¿ä¸ªæ件夹Icon.iconsetã æå¨Icon.iconsetæ件夹å°å·¥ç¨æ左边çç®å½ä¸çHelloWorldç®å½ä¸ãå¨Icon fileå段è¾å ¥Iconå³å¯ã
请ç¹å»è¾å ¥å¾çæè¿°
Bundle identifier:åºç¨çå¯ä¸æ è¯å串ã
Bundle versions stringï¼ short:åºç¨å¯¹å¤åå¸ççæ¬å·ã
Bundle version:åºç¨å é¨çæ¬å·ãæ交å°è¹æçå¾ å®¡æ ¸ä¸ççæ¬ï¼å¦æåç°bugï¼å¯ä»¥æ¤ä¸æ¥éæ°æ交ï¼è¿æ¶åBundle versions stringï¼ shortçæ¬å·ä¿æä¸åï¼åªéè¦å¯¹Bundle versionçæ¬å·éå¢å³å¯ã
Main nib file base nameï¼æå®åºç¨å¯å¨æ¶å è½½çxibæ件åã
Principal class:NSApplication
main.m
åºç¨çå ¥å£ãæ§è¡mainå½æ°ï¼Appè¿è¡æ¶é¦å å建NSApplicationå®ä¾å è½½xibæ件ï¼å建xibæ件ä¸å®ä¹çèå/windowå®ä¾ãè¿ä¸ªNSApplicationå°±æ¯Files OwnerãNSApplicationæ¯æ¯AppDelegate代çï¼å æ¤ä¼æ§è¡AppDelegateä¸çapplicationDidFinishLaunching:æ¹æ³æ¥è¿è¡èªå®ä¹çä¸äºåå§åã
请ç¹å»è¾å ¥å¾çæè¿°
target
å®ä¹äºç¼è¯åå¸çå个产åéè¦çæºæ件ï¼é ç½®åæ°ï¼ä¾èµçåºï¼é¨ç½²ç³»ç»çæ¬ç¯å¢ï¼ç¾åæ件çã
General
é¤äºå¯ä»¥éè¿plistæ件修æ¹åºç¨çé 置信æ¯å段å¤ï¼è¿å¯ä»¥éæ©targetè¿å ¥Generalé¢æ¿ æ¥ä¿®æ¹plistæ件ä¸é¨åå段ã
请ç¹å»è¾å ¥å¾çæè¿°
Application Categoryï¼å¯ä»¥éæ©ä¸ä¸ªåºç¨çåç±»ï¼æ交Mac Appstoreå¿ é¡»è¦æåç±»ã
Deployment Info:Deployment Target设置åºç¨æ¯æçæä½OSXç³»ç»çæ¬ã
Capabilites
请ç¹å»è¾å ¥å¾çæè¿°
è¿éæ们éç¹å ³æ³¨ä¸App Sandboxï¼Appleç°å¨è¦æ±ä¸æ¶Mac AppStoreçåºç¨å¿ 须使ç¨æ²çï¼æ以åå¸å°Macååºçåºç¨ä½ å¿ é¡»éæ©æå¼ã
å¦æä½ çåºç¨è¦è®¿é®æå¡å¨çAPIæ¥å£ï¼å¿ é¡»æå¼Outgoing Connectionsã
Hardwareéé¢å¿ é¡»éæ©æå¼Printingï¼å¦åå®¡æ ¸ä¸éè¿ã
File Accedd:å¦æä½ éè¦è®©ç¨æ·éæ©è®¿é®æ¬å°çæ件ï¼User Selected File ä¸éæ©è¯»/åæéã
请ç¹å»è¾å ¥å¾çæè¿°
Info
请ç¹å»è¾å ¥å¾çæè¿°
è¿éæä¸é¢é¨åè·ç´æ¥æ¥çinfo.plist çå°çå 容ä¸è´.
Document Typesä¸å¯ä»¥è®¾ç½®åºç¨è·æ件çå ³èãæ¯å¦ä½ å¼åäºä¸ä¸ªå¾çåºç¨ï¼å¯ä»¥è®¾ç½®åå»å¾çæ¶èªå¨è¿è¡ä½ çåºç¨ï¼æè å½é¼ æ å³å»èååºç°æ¶éé¢å¯ä»¥åºç°ä½ çåºç¨ã
Build Settings
请ç¹å»è¾å ¥å¾çæè¿°
å¦æ使ç¨äºéç³»ç»ç第3æ¹frameworkæè èªå·±å¼åçframeworkï¼Code Signing éé¢Other Code Signing Flags å¿ é¡»è®¾ç½®ä¸º --deepï¼å¦åæ æ³æ£å¸¸æå åå¸å°Mac Appstoreã
Build Phases
请ç¹å»è¾å ¥å¾çæè¿°
Link binary With Libraries:ç¹å»+æ·»å ä¾èµçç³»ç»åºã
win系统中显示树形目录文件夹的单源动树单代两种方法
方法一:使用文件资源管理器
方法二:使用命令提示符
在Windows 系统中,显示树形目录文件夹的码拖码方法主要有两种:使用文件资源管理器和使用命令提示符。
方法一详解:
文件资源管理器是形菜形菜根板源码下载Windows操作系统中用来管理文件和文件夹的工具。通过它,单源动树单代用户可以以树形结构查看所有的码拖码文件和文件夹。
1. 打开文件资源管理器:可以通过快捷键“Win+E”打开,形菜形菜或者在开始菜单中搜索“文件资源管理器”打开。单源动树单代
2. 在左侧导航窗格中,码拖码可以看到“此电脑”和“网络”两个选项,形菜形菜点击“此电脑”,单源动树单代奉献理想专用源码即可看到所有的码拖码磁盘分区和文件夹。
3. 点击任何一个文件夹,形菜形菜比如“C:\Users”,单源动树单代在右侧的码拖码主窗口中,可以看到该文件夹下的防滑涂料指标源码所有子文件夹和文件,它们以树形结构显示出来。
方法二详解:
命令提示符是Windows操作系统中用来执行命令的工具,通过一些特定的命令,也可以实现树形目录的查看。
1. 打开命令提示符:可以通过快捷键“Win+R”,制作表白码源码然后输入“cmd”打开,或者在开始菜单中搜索“命令提示符”打开。
2. 在命令提示符中,输入“tree”命令,然后按下回车键,源码下载软件app即可看到当前路径下的所有文件和文件夹的树形结构。例如,输入“tree C:\Users”,即可看到“C:\Users”路径下的所有文件和文件夹的树形结构。
以上两种方法都可以实现在Windows 系统中查看树形目录文件夹的目的,用户可以根据自己的习惯和需要选择合适的方法。
C:\ Users\ Administrator\ Desktop是引用了一个不可用的位置。
c:\Users\Administrator\Desktop引用了一个不可用的位置的修复步骤如下:1.点击桌面左下角的“开始”菜单,点击“运行”输入“regedit”或者直接在搜索框输入,按回车键打开注册表。
2.展开注册表左侧树形菜单,进入此路径“HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\USER SHELL FOLDERS”可以看到右侧出现了“我的文档”里各个项目的设置项。
3.逐个双击具体的设置项目,弹出修改窗口,将路径设置为你想要放置的盘符下,点击“确定”。
4.修改好后可以直接关闭注册表,点击重启电脑就行了。这样就解决了c:\Users\Administrator\Desktop引用了一个不可用的位置的修复问题了。
2024-11-20 22:28
2024-11-20 22:20
2024-11-20 21:33
2024-11-20 20:35
2024-11-20 20:15