Tag Archives: Mac/Ios

《IOS开发系列教程》设置启动的storyboard

《IOS开发系列教程》设置启动的storyboard

xcode创建的工程默认是只有1个storyboard

main.storyboard

storyboard是扩展名,真正的名字是main

在代码选择使用那个storyboard的时候,也是使用main,而不是main.storyboard

但是我们可以创建很多个storyboard,比如创建了另外一个storyboard叫做

继续阅读

《IOS开发系列教程》为什么选择objective c而没有选择swift

《IOS开发系列教程》为什么选择objective c而没有选择swift

几年前就接触过ios开发,那时候觉得objective c这个语言实在设计的太丑了,后来就想能不能用其他语言来开发ios程序,后来还曾尝试过使用python。最近又尝试捡起ios的开发,不过发现apple在2014年底推出了新的面向对象的语言 swift,非常兴奋,一睹为快,发现swift摒弃了方括号的方法调用,使用各大面向对象的语言所使用的点调用,这点让人很舒服,不过还是有些很奇怪的地方,比如函数的定义的中返回值的声明尽然用的”->“符号,真是服了,非要整的跟别人不一样了。经过再三的考虑,还是选择了objective c作为ios的开发语言,原因是:

继续阅读

《IOS开发系列教程》对话框

iosalert

《IOS开发系列教程》对话框

开发窗口程序,最长用到的一个窗口就是对话框,这在MFC还是QT,亦或者是wxWidget中,都是如此,那么IOS开发中,也提供了这个功能。

我们有2个选择

  • UIAlertView
  • UIActionSheet

这个2个都可以做到显示一些选项,让用户选择,比如yes,no之类,不过UIActionSheet的功能更加丰富一点,可以提供更多的选项给用户,比如让用户的选择使用哪种账号登陆,google,facebook,twitter。

UIAlertView UIActionSheet

使用UIAlertView:

让要显示对话框的类继承自UIAlertViewDelegate

比如:

@interface xxxViewController : UIViewController <UIAlertViewDelegate>

调用对话框:

UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Hello World!"                                                   message:@"This is your first UIAlertview message."                                                  delegate:self                                         cancelButtonTitle:@"Button 1"                                         otherButtonTitles:@"Button 2", @"Button 3", nil]; [message show]; 对话框的回调函数, 这个在 xxxViewController.m中实现 这个函数中检查用户选择了哪个选项   - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {     NSString *title = [alertView buttonTitleAtIndex:buttonIndex];           if([title isEqualToString:@"Button 1"])     {         NSLog(@"Button 1 was selected.");     }     else if([title isEqualToString:@"Button 2"])     {         NSLog(@"Button 2 was selected.");     }     else if([title isEqualToString:@"Button 3"])     {         NSLog(@"Button 3 was selected.");     } }

使用UIActionSheet:

让要显示对话框的类继承自UIActionSheetDelegate

比如:

@interface xxxViewController : UIViewController <UIActionSheetDelegate>

调用显示:

NSString *actionSheetTitle = @"Action Sheet Demo"; //Action Sheet Title
NSString *destructiveTitle = @"Destructive Button"; //Action Sheet Button Titles
NSString *other1 = @"Other Button 1";
NSString *other2 = @"Other Button 2";
NSString *other3 = @"Other Button 3";
NSString *cancelTitle = @"Cancel Button";
UIActionSheet *actionSheet = [[UIActionSheet alloc]
                              initWithTitle:actionSheetTitle
                              delegate:self
                              cancelButtonTitle:cancelTitle
                              destructiveButtonTitle:destructiveTitle
                              otherButtonTitles:other1, other2, other3, nil];
[actionSheet showInView:self.view];

继续阅读

苹果的Mac开发者和IOS开发者注册竟然是分开收费的

苹果的Mac开发者和IOS开发者注册竟然是分开收费的

真是想不到,苹果的Mac开发者和IOS开发者注册竟然是分开收费的,也就是说如果你只注册了其中一个,那么你是不能去开发-测试-发布另外一个的。

注册地址:

https://developer.apple.com/programs/

其实苹果的开发者是分为3类,

继续阅读

《IOS开发系列教程》添加工具条 toolbar

《IOS开发系列教程》添加工具条 toolbar

添加工具条(toolbar)有2种方式,

  1. 从interfacebuilder通过拖拽完成
  2. 通过代码的方式

第一种方式,不多赘述,主要说说代码中如何完成。

xcode 6中默认是的controller是自带toolbar的,不过默认是不被显示的,要显示它

self.navigationController.toolbarHidden=NO;

然后创建几个button

UIBarButtonItem *flexiableItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:nil];

继续阅读

《IOS开发系列教程》序列化反序列化对象

《IOS开发系列教程》序列化反序列化对象

Cocoa touch提供了序列化和反序列化的方法:

archiveRootObject
unarchiveObjectWithFile

使用这2个方法之前,要保证你的对象是实现了NSCoding协议,例如你定义了一个类,

在头文件中:

@interface myClass : NSObject <NSCoding>

在实现文件中:

@implementation 

-(void)encodeWithCoder:(NSCoder *)encoder

{

}

- (id)initWithCoder:(NSCoder *)decoder

{

}

下面给出了一个列子:

-(void)encodeWithCoder:(NSCoder *)encoder{
    [encoder encodeObject:self.difficulty forKey:@"difficulty"];
    [encoder encodeObject:self.language forKey:@"language"];
    [encoder encodeObject:self.category forKey:@"category"];
    [encoder encodeObject:self.playerType forKey:@"playerType"];
}

- (id)initWithCoder:(NSCoder *)decoder {
    if (self = [super init]) {
        self.difficulty = [decoder decodeObjectForKey:@"difficulty"];
        self.language = [decoder decodeObjectForKey:@"language"];
        self.category = [decoder decodeObjectForKey:@"category"];
        self.playerType = [decoder decodeObjectForKey:@"playerType"];
    }
    return self;
}

继续阅读

《IOS开发系列教程》设置鼠标焦点

《IOS开发系列教程》设置鼠标焦点

在某个界面一显示的时候,我们希望焦点就设在某个控件上面,比如输入框里面,然后键盘也自动弹出,

这个功能,我在xcode的界面中并没有发现(这点让我很意外),并不像很多的其他的界面设计器,可以设置默认焦点的控件。

继续阅读