1. 程式人生 > >IOS 初級開發入門教程(五)TextField與ReturnKey實戰練習

IOS 初級開發入門教程(五)TextField與ReturnKey實戰練習

看完前面4章的內容,基本對IOS開發有一些認識了,這章我們繼續動手去實踐一下,學習文字和鍵盤的相關知識,以及通過一個互動式的案例演示文字與鍵盤的使用。

系列文章:


UIKit繼承結構

我們通過這個UIKit繼承結構圖,我們試著找到本章要學習的TextFiled與TextView,去觀察所屬的繼承關係。

介面檢視

在控制元件的Filter中找到Label、TextFiled和Textview,拖拽到StoryBoard,畫出介面如下:


程式碼介面

開啟ViewController,在程式碼中實現UITextFieldDelegate和UITextViewDelegate委託協議。將控制元件物件進行引用宣告:(程式碼右邊圓點拖拽到指定控制元件即可,細節操作上一章有講到)

TextFiled清理圖示和文字型別:(Keyboard Type:是軟鍵盤型別)


控制元件委託代理:

import UIKit

class ViewController: UIViewController,UITextFieldDelegate,UITextViewDelegate {
    
    @IBOutlet weak var textField: UITextField!
    
    @IBOutlet weak var pwd: UITextField!
    
    @IBOutlet weak var textview: UITextView!
     //宣告週期——建立
    override func viewDidLoad() {
        super.viewDidLoad()
        textField.returnKeyType=UIReturnKeyType.next;//設定軟鍵盤Return型別為下一步
        textField.delegate = self;//委託給ViewController代理
        pwd.returnKeyType = UIReturnKeyType.done;//完成
        pwd.delegate = self;
    }}

軟鍵盤Return型別:(顯示中文,還得設定info.plist中Localization native development region 為 cn或china​ )

  • UIReturnKeyDefault,
  • UIReturnKeyGo,//去往
  • UIReturnKeyGoogle,
  • UIReturnKeyJoin,//加入
  • UIReturnKeyNext,//下一步
  • UIReturnKeyRoute,
  • UIReturnKeySearch,//搜尋
  • UIReturnKeySend,//傳送
  • UIReturnKeyYahoo,
  • UIReturnKeyDone,//完成
  • UIReturnKeyEmergencyCall
  • UIReturnKeyContinue NS_ENUM_AVAILABLE_IOS(9_0)

虛擬機器軟鍵盤

如果使用的Mac虛擬機器預設是使用電腦實體鍵盤的,需要取消勾選Connect Hardware Keyboard 。


收起鍵盤

TextFiled預設在編輯狀態會調起軟鍵盤,但是初次體驗是無法自動收起鍵盤。那麼就需要程式碼進行控制了。

一般對單個的UITextField呼叫resignFirstResponder方法, 就可以使其失去第一響應者即收起軟鍵盤了。

本案例實現點選空白處自動收起鍵盤:

重寫ViewController的touchesBegan或touchesEnded方法呼叫View.endEditing(true):

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        view.endEditing(true)
    }

TextField的軟鍵盤Return事件處理:

到這裡,是小練習的最後也是最重要環節。

我們先手打出textFieldShouldReturn方法。(該方法屬於系統編輯器會自動提示)

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        NSLog("點選了FieldReturnKey");
       
        return true;
    }

練習題目:判斷編輯框內容非空、文字框進行提示。

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        NSLog("點選了FieldReturnKey");
        
        if(textField == self.textField && self.textField.returnKeyType == UIReturnKeyType.next){
            if(self.textField.text == ""){
                textview.text = "賬戶不能為空!";
            }else{
                self.textField.resignFirstResponder();
                textview.text = "Next響應成功!";
                pwd.becomeFirstResponder();
            }
        }else if textField == self.pwd && pwd.returnKeyType == UIReturnKeyType.done{
            if self.textField.text == ""{
                self.pwd.resignFirstResponder();
                textview.text = "賬戶不能為空!";
                self.textField.becomeFirstResponder();
            }else if(textField.text == ""){
                textview.text = "密碼不能為空!";
            } else{
                textview.text = "恭喜你!響應成功!";
            }
        }
        
        return true;
    }

程式碼邏輯比較常見,很簡單。但是,細心的朋友會留意幾點:self.變數名 、if()。

這裡要說一下:首先,我們在方法引數中宣告的textFiled和我們宣告的全域性變數textFiled,它倆重名了。引數中的textFiled表示該型別的控制元件,所有我們要使用自己宣告的需要藉助委託代理self.textFiled指明,不重名的一般可以不用加,但是規範程式碼肯定還是要加self的。另外,if判斷加不加()都一樣。

執行結果



相關推薦

IOS 初級開發入門教程TextFieldReturnKey實戰練習

前言看完前面4章的內容,基本對IOS開發有一些認識了,這章我們繼續動手去實踐一下,學習文字和鍵盤的相關知識,以及通過一個互動式的案例演示文字與鍵盤的使用。系列文章:UIKit繼承結構我們通過這個UIKit繼承結構圖,我們試著找到本章要學習的TextFiled與TextView

IOS 初級開發入門教程第一個HelloWorld工程及StoryBoard使用

前言 在IOS開發之路的博文第一章:(IOS開發入門介紹http://blog.csdn.net/csdn_aiyang)我大致系統介紹了有關IOS的一些基礎認識,如果不完全都記住沒關係,以後我們開發之路還很長,慢慢的自然而然就明白是怎麼回事了。這一篇我將手把手教大家完成第

IOS 初級開發入門教程介紹篇

導讀        目前移動端開發市場上引導開發者追求技多不壓身,一個全棧開發者至少要懂後臺伺服器、資料庫、Android、web、ios開發等。“一超多強”是指開發者先成為一門技術的專家然後掌握瞭解多門技術,這是一種好的發展趨勢,另外,這種技多不壓身我認為當開發者更適合發

IOS 初級開發入門教程基礎控制元件使用小練習

前言看完前面3章的內容,基本對IOS開發有一些認識了,這章我們開始動手去實踐做點小練習,學習如何建立並設定標籤和按鈕(Label & Button)的相關屬性,以及通過一個互動式的案例演示動作和輸出口的使用。系列文章:建立Swift新專案使用Label和Button1

IOS 初級開發入門教程探究應用及檢視的生命週期變化

導讀 作業系統都會根據應用的生命週期狀態來管理和處理邏輯,這一點在Android開發上現的就已經非常好了,耳熟能詳的就是應用狀態影響記憶體回收級別和活動的生命週期。同樣,在IOS上也會充分利用應用的檢視的生命週期來進行管理應用。首先,我們先知道IOS應用在程式中的五種狀

Docker入門教程Docker安全

【編者的話】DockOne組織翻譯了Flux7的Docker入門教程,本文是系列入門教程的第五篇,介紹了Docker的安全問題,依然是老話重談,入門者可以通過閱讀本文快速瞭解。 我們必須高度重視開源軟體的安全問題,當開發者在使用Docker時,從本地構建應用程式到生產環境部署是沒有任何差異的(譯

ADO.NET入門教程 細說資料庫連線池

題外話 通過前幾章的學習,不知道大家對ADO.NET有一定的瞭解了沒有。撇開文章質量不講,必須肯定的是,我是用心去寫每一篇文章的。無論是是在排版上,還是在內容選取上我都花了不少心思。我希望通過本系列文章,無論是新手還是老手,在ADO.NET上都能有所收穫。如果大家覺得有幫助,我希望能得到您的推薦和關注,讓我

Linux小小白入門教程:顯示和進入資料夾

以下操作在Linux終端進行。Linux因為許可權非常嚴格,所以暫時所有的命令操作全部是在/home資料夾下的/yangjw資料夾下進行。/yangjw資料夾就是登入使用者名稱所在的資料夾,出了此資料

使用HAL庫、STM32CubeMX和Keil 5開發入門教程:點亮一盞LED燈NUCLEO-F411RE

本教程以點亮一盞LED燈為目的為大家演示用STM32CubeMX、Keil、ST-Link開發STM32程式的一般方法。 一、學習前的準備工作 硬體:一塊STM32開發板,一個ST-Link;(我使用的開發板是NUCLEO-F411RE) 軟體:裝好ST-

Cordova+Angularjs+Ionic混合開發入門—— 外掛的釋出

自己編寫完的外掛只能自己使用,想共享到Internet或者用到別的專案就比較麻煩,這是我們需要把程式碼做成外掛形式,然後釋出到網上少說廢話,直奔主題!【iOS版,Mac環境】 1.方式一:GitHub託管 cordova    plugin    add    htt

基於PyTorch的深度學習入門教程——訓練神經網路分類器

前言本文參考PyTorch官網的教程,分為五個基本模組來介紹PyTorch。為了避免文章過長,這五個模組分別在五篇博文中介紹。本文是關於Part4的內容。Part4:訓練一個神經網路分類器前面已經介紹了

IOS 初級開發入門教程 (六) Switch、Slider、Segmented、Progress練習

前言看完前面5章的內容,基本對IOS開發有一些認識了,這章我們繼續動手去實踐一下,學習開關、拖動、分段控制、進度條的相關知識,以及通過一個互動式的案例演示如何使用。系列文章:UIKit繼承結構我們通過這

ZED stereo camera開發入門教程2

教程2:影象捕獲 本教程將介紹如何捕獲ZED攝像機的左影象。程式將迴圈,直到我們成功地抓住了50張影象。我們假設您已閱讀教程1併成功打開了ZED。 入門 首先,在stereolabs.com上下載最新版本的ZED SDK 。有關更多資訊,請閱讀ZED API文件。先決條件

GAN網路之入門教程之基於條件cGAN動漫頭像生成

[toc] 在上篇部落格([AN網路之入門教程(四)之基於DCGAN動漫頭像生成](https://www.cnblogs.com/xiaohuiduan/p/13274675.html))中,介紹了基於DCGAN的動漫頭像生成,時隔幾月,序屬三秋,在這篇部落格中,將介紹如何使用條件GAN網路(conditi

【影象處理】OpenCV+Python影象處理入門教程閾值處理

       這篇隨筆介紹使用OpenCV進行影象處理的第五章 閾值處理。 5  閾值處理 閾值是指畫素到達某臨界值。閾值處理表示畫素到達某臨界值後,對該畫素點進行操作和處理。 例如:設定一幅影象素閾值為200,則圖片中所有大於200的畫素點設定為2

iOS8開發~SwiftSwiftOC混編

一、概要 首先看《The Swift Programming Language》中提到“Swift’s compatibility with Objective-C lets you create a project that contains files written

6、ActiveMQ入門教程SpringActiveMQ整合

在這一篇部落格分享一下消費者,使用監聽的實現方式。 1. pom.xml 2. 生產者 package org.ygy.mq.lesson04;   import javax.jms.JMSException;   import javax.jms.Mes

Python入門系列教程函數

st3 python入門 test print 缺省 .com 教程 技術 log 全局變量 修改全局變量 a=100 def test(): global a a=200 print a 多個返回值 缺省參數 d

微信公眾平臺開發教程自定義菜單

打開鏈接 delete toolbar 推送 優化 pcl reader 接口查詢 robot 應大家強烈要求,將自定義菜單功能課程提前。 一、概述: 如果只有輸入框,可能太簡單,感覺像命令行。自定義菜單,給我們提供了很大的靈活性,更符合用戶的操作習慣。在一個小小的微信對話

Golang入門教程beego 快速開發 HTTP 框架

應用 inf ado .com home clas lan mime iyu   beego 是一個快速開發 Go 應用的 HTTP 框架,他可以用來快速開發 API、Web 及後端服務等各種應用,是一個 RESTful 的框架,主要設計靈感來源於 tornado、sina