標籤:
//// HMViewController.m// 01-UIKit複習//// Created by apple on 14-8-18.// Copyright (c) 2014年 itcast. All rights reserved.//#import "HMViewController.h"@interface HMViewController () <UITextFieldDelegate>@end@implementation HMViewController/** 1> UIButton -> UIControl -> UIView 1.1 設定控制項的狀態 啟用、禁用 @property(nonatomic,getter=isEnabled) BOOL enabled; 選中、不選中 @property(nonatomic,getter=isSelected) BOOL selected; 高亮或者不高亮 @property(nonatomic,getter=isHighlighted) BOOL highlighted; 1.2 設定控制項內容的布局 垂直置中方向 @property(nonatomic) UIControlContentVerticalAlignment contentVerticalAlignment; 水平置中方向 @property(nonatomic) UIControlContentHorizontalAlignment contentHorizontalAlignment; 1.3 添加/刪除監聽方法 - (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; - (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; 2> UILabel -> UIView 3> UIImageView -> UIView 4> UITextField -> UIControl *** 代理設計模式,在OC中,使用最為廣泛的一種設計模式 1> 代理的用處是什嗎? * 監聽那些不能通過addTarget監聽的事件! * 主要用來負責在兩個對象之間,發生某些事件時,來傳遞訊息或者資料 2> 代理的實現步驟 (1) 成為(子)控制項的代理,父親(控制器)成為兒子(文字框)的代理 (2) 遵守協議->利用智能提示,快速編寫代碼 (3) 實現協議方法 */- (void)viewDidLoad{ [super viewDidLoad]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeContactAdd]; btn.center = self.view.center; [self.view addSubview:btn]; // 將監聽方法,註冊到"運行迴圈",當按鈕被點擊後,"運行迴圈"通知視圖控制器執行@selector的方法 [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside]; // UITextField *textFiled = [[UITextField alloc] initWithFrame:CGRectMake(20, 20, 280, 40)];}- (void)click:(UIButton *)btn{ NSLog(@"%s", __func__); [btn removeTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];}#pragma mark - 文字框代理方法/** 成為代理之後要做的事情,以及如何工作 1> 協議:預先定義的一些方法名,每個方法對應不同的事件,但是沒有具體的實現 */- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ NSLog(@"%@ %@", NSStringFromRange(range), string); // 限制輸入的長度 int loc = range.location; return (loc < 6); // if (loc < 6) {// return YES;// } else {// return NO;// } // 如果返回NO,就不向文字框中添加字元// return YES;}@end
iOS-UIkit複習和代理的使用實現文字框限制輸入字數控制