ios 文本框变化 监听的3种方式
博客专区 > cicue 的博客 > 博客详情
ios 文本框变化 监听的3种方式
cicue 发表于2年前
ios 文本框变化 监听的3种方式
  • 发表于 2年前
  • 阅读 793
  • 收藏 1
  • 点赞 0
  • 评论 2

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: ios 文本框变化 监听的3种方式 设置代理 通知 设置执行方法

声明属性

@interface LoginControler() <UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UITextField *userName;

@end

1,代理方式

-(void) viewDidLoad
{
    _userName.delegate = self;    //添加代理
}

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSLog(@"%@", textField.text);
    return true;    //如果NO就不会显示
}

2,通知 

这种方式在通知完后还需要释放,麻烦,用的少

-(void) viewDidLoad
{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:nil];
    //addObserver:self 监听者对象
    //name 监听的改变对象的方法
    //object 监听的对象 nil 全部监听
}

-(void)textChange
{
    NSLog(@"%@", _userName.text);
}

-(void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self]; //移除监听
}

3,动态添加执行方法

-(void) viewDidLoad
{
    [_userName addTarget:self action:@selector(textChange) forControlEvents:UIControlEventEditingChanged];
    
    //forControlEvents 触发事件
}

-(void)textChange
{
    NSLog(@"%@", _userName.text);
}


switch 开关的方法

- (IBAction)loginSwith:(UISwitch *)sender
{
    if (sender.isOn ) {
        [_Test setOn:YES animated:YES];
        NSLog(@"开");
    } else {
        [_Test setOn:NO animated:YES];
        NSLog(@"关");
    }
}

UIActionSheet 底部弹出提示框

UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"拍照"otherButtonTitles:@"照相",nil];

[sheet showInView:self.view];

//initWithTitle 提示栏
//delegate 代理者
//cancelButtonTitle 取消按钮
//destructiveButtonTitle  从上往下的第一个按钮
//otherButtonTitles 第二个按钮

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
    
    NSLog(@"%ld",buttonIndex);
}

UIAlertView 提示框

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"标题" message:@"内容" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];

[alert show];

board 跳转方法

1,
//获取storyboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
//获取想要的viewControl
UIViewController *control = [storyboard instantiateViewControllerWithIdentifier:@"phoneStoryboard"];
//push 跳转
[[self navigationController]pushViewController:control animated:YES];
2,
[self performSegueWithIdentifier:@"phonesugue" sender:nil];
//performSegueWithIdentifier 为连接跳转sugue的id


共有 人打赏支持
粉丝 15
博文 102
码字总数 74518
评论 (2)
阴雨音语
解决我的问题,感谢
阴雨音语
×
cicue
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: