1. 程式人生 > >IOS 自定義UITextField的輸入法

IOS 自定義UITextField的輸入法

#import "ViewController.h"

@interface ViewController ()

@property (nonatomic,weak) UITextField *birthDataText;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIView *accesoryView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];
    accesoryView.backgroundColor = [UIColor redColor];
    
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = CGRectMake(60, 0, 200, 40);
    [btn setTitle:@"完成" forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
    [accesoryView addSubview:btn];
    
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 60, 40)];
    [label setText:@"生日: "];
    [label setTextAlignment:NSTextAlignmentRight];
    [self.view addSubview:label];
    
    UITextField *birthDayText = [[UITextField alloc] initWithFrame:CGRectMake(80, 20, 200, 40)];
    [birthDayText setPlaceholder:@"請輸入生日"];
    [birthDayText setBorderStyle:UITextBorderStyleRoundedRect];
    [self.view addSubview:birthDayText];
    
    self.birthDataText = birthDayText;
    
    UIDatePicker *dataPicker = [[UIDatePicker alloc] init];
//    [self.view addSubview:dataPicker];
    //選擇日期的模式
    [dataPicker setDatePickerMode:UIDatePickerModeDate];
    //NSLog(@"%@",[NSLocale availableLocaleIdentifiers]);
    
    //設定日期控制元件的初始值
    NSString *startDay = @"2012-12-04";
    NSDateFormatter *formater = [[NSDateFormatter alloc] init];
    formater.dateFormat = @"yyyy-MM-dd";
    NSDate *date = [formater dateFromString:startDay];
    
    //設定textFiled的預設值
    [self.birthDataText setText:startDay];
    
    [dataPicker setDate:date];
    
    //設定控制元件顯示的地區語言型別
    [dataPicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_Hans_CN"]];
    
    //監聽日期選擇控制元件的數值變化
    [dataPicker addTarget:self action:@selector(dataChange:) forControlEvents:UIControlEventValueChanged];
    
    //設定輸入的UIView,而不是鍵盤
    [birthDayText setInputView:dataPicker];
    [birthDayText setInputAccessoryView:accesoryView];
}

#pragma mark - 完成按鍵處理
-(void)btnClick
{
    //退出鍵盤
    [self.view endEditing:YES];
}

#pragma mark - 日期選擇控制元件的監聽方法
-(void)dataChange:(UIDatePicker *)datePicker
{
    NSLog(@"%@",datePicker.date);
    NSDateFormatter *formater = [[NSDateFormatter alloc]init];
    formater.dateFormat = @"yyyy-MM-dd";
    self.birthDataText.text = [formater stringFromDate:datePicker.date];
}

#pragma mark - 點選空白處則退去鍵盤
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self.view endEditing:YES];

}

執行效果


相關推薦

IOS 定義UITextField輸入法

#import "ViewController.h" @interface ViewController () @property (nonatomic,weak) UITextField *birthDataText; @end @implementation ViewC

iOS定義輸入法之數字鍵盤

    iOS中最常用的輸入控制元件有UITextFiled和UITextView,當有特殊需要的時候我們會用到自定義的輸入法。 下面簡單介紹建立一個只用於輸入數字的輸入法。     1.建立一個基於UIView的類myInputView,新增0-9十個按鈕(tag值為10

ios 定義鍵盤的return鍵以及鍵盤的其他一些屬性

variable 位置 arch ext ddr gin character 觸發 hone //初始化textfield並設置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20

IOS 定義按鈕(代碼實現)+九宮格

uifont 排列 end uiview height iyu void rec name 在一些下載應用裏整個頁面都是按鈕,有好多好多,但是仔細觀察不難發現他們很有規律。就像下面一樣?? 很有規律的排列在屏幕上,那麽這需要我們怎麽去做能。 正如標題,我們需要了解兩個知

iOS定義一些提示控件

mat cat get -1 from start mask ins sel 代碼如下: .h中的代碼: // // HKUIToolsView.h // HKUIToolsDemo // // Created by isHakan on 2017/7/28

iOS - 定義 iPhone 鈴聲

mar 資料庫 phone 右鍵 還需要 到手 文件名 頁面 fin 1、iPhone 鈴聲格式 iPhone 的來電鈴聲時長限制為 40 秒,短信鈴聲時長限制為 25 秒,且 iOS5 及以上的系統才支持 m4r 格式的短信鈴聲。 2、自定義 iPhone 鈴聲 1

iOS定義控制元件-UISearchBar

   在開發過程中,UISearchBar屬不多見的控制元件,在我們一般使用的是系統原生樣式:    但是UI設計師可能想要的是這種:    可能你覺得很簡單:覺得設定背景顏色,邊框圖示什麼的;

iOS定義協議中的byte使用

自定義的簡單協議一般包括訊息頭部,訊息碼,訊息體,校驗碼和尾部,一個專案裡面用到的頭部和尾部一般都是固定的,訊息碼用來標識是哪一條訊息,校驗碼用來校驗資料完整性 在一些需要相容多端的開發的時候,可能會遇到使用自定義協議,比如與硬體通訊或者使用socket的時候,接受的資料是按約定

ios定義日期、時間、城市選擇器

選擇器,我想大家都不陌生,當需要使用者去選擇某些範圍值內的一個固定值時,我們會採用選擇器的方式。選擇器可以直觀的提示使用者選擇的值範圍、統一資訊的填寫格式,同時也方便使用者快速的進行選擇,比如對於性別,正常情況下就只有男女兩種情況,那這時候用一個選擇器給使用者進行選擇的話,可以避免錯誤資料的輸入,也更方便使用

iOS定義tabbar(沒有tabbar上的黑線)

自定義tabbar相信在很多專案中都要用到。有的時候 還需要那種 不規則的tabbar,例如中間高兩邊底,例如需要新增tabbar的背景圖片等等。這裡 我要介紹一種 自定義tabbar的方法 ,這種方法可以呼叫系統的 hidesBottomBarWhenPushed 方法,很方便的隱藏tab

iOS定義log並寫入檔案

前言 iOS開發中,很多情況需要使用到log列印,本文主要講解如何將列印寫入檔案,並且不影響控制檯的正常列印。 常見方法 NSString *documentDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSU

ubuntu16.04 定義fctix輸入法

1 , cd到面板資料夾 cd /usr/share/fcitx/skin/ 2, ll 檢視 並cd到想編輯的面板資料夾 比如cd到dark cd dark/ 3,按下面的資訊 具體配置大小顏色 可以開啟vscod等取色工具檢視顏色資訊 [SkinFont]

IOS 定義軟鍵盤功能,修改換行鍵為傳送鍵

IOS專案是使用混合模式開發,在開發聊天功能時;發現軟鍵盤不能像QQ、微信那樣,換行鍵不能變為傳送;網上說是因為輸入框類別導致;嘗試過以後,還是不行;然後想到用IOS native解決; 先說一下,原生APP 設定軟鍵盤換行鍵為傳送鍵: textField.returnKeyType = U

iOS定義任意解析度的Camera(包含example code)

說在前面 如果不想看文章,可以直接翻到最後,我已經把程式碼上傳到gist上,但這樣你會失去一個理解程式碼的機會。 概述 該文章會涉及到的概念包括: AVCaptureDeviceInput,AVCaptureVideoDataOutput,AVCaptureV

iOS 定義 中間帶突起圓形的tabbar

概述 在正常的使用場景中,我們處理了比較多的矩形區域內觸控事件,比如UIButton、UIControl。一般來說,這些控制元件的圖形以及觸控區域都是矩形或者圓角矩形的。但是在一些特殊應用場景中我們有時不得不面對這樣一種比較嚴苛的需求,比如要求程式只對某個圓形

iOS 定義提示框

在專案的開發中經常需要用到一些提示框,提示使用者是否確定進行某項操作。雖然系統提供了一個UIAlter的控制元件供開發人員使用,但是系統自帶往往有侷限性,不能滿足需求了,很多時候需要自定義提示框。我寫了一個比較簡單的自定義提示框,當然可以根據自己實際的需求,在我

iOS-定義的控制元件UILabel、、、touches等系列事件不執行問題

本文首發地址 解決答案在最下面··· 1.場景描述場景描述 我繼承了UILabel搞了一個自定義的控制元件。 在搞上一些觸控事件 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)e

iOS定義TextField的clearButton

http://blog.yourtion.com/ios-custom-textfield-clearbutton.html 因為自定義了 TextField的背景為黑色,所以原生的clearButton就看不到了,查找了一下,可以利用KVO方法進行定製,程式碼如下:

ios定義中間凸出 UITabBar,so easy……

IOS 自定義UITabBar ,中間按鈕凸出 很多專案中都有中間凸出的UI設計,這個不規則的設計才坑爹,必須要自定義。在安卓上 做這個也是坑,現在只說ios的實現。 示意圖:  問題和難點: 橫線,凸出部分上的黑色半圓線;超出UITabbr部分的點選事件;UIT

iOS 定義UICollectionViewLayout實現瀑布流

前言hihi,勇敢的小夥伴兒們大家好,很高興今天又能更新了,首先照例說一下學習這個瀑布流的人生感悟(一本正經)。在2015年的時候我已經瞭解瀑布流這個概念了,也知道可以用UICollectionView來實現,但是有意思的是我從業幾年來,從未在專案中真正實踐過,所以我就一!直