iOS中改變uiTextField的游標起始位置
uiTextField作為輸入框,在很多場景都會使用,一般我們都是對齊預設的佈局做一些更改,常用的可能會修改游標的顏色,placeholder的顏色,字型等等,有些修改直接設定uiTextField的屬性就可以,有些則沒有,需要重寫它提供的一些方法才可以,有些則怎麼都辦不到,例如修改游標的寬度,如果哪位知道,請告訴我下,謝謝。
1. 修改游標的位置
修改游標的位置也就是修改可編輯區域的位置,預設屬性是沒有,但是可以重寫uiTextField,如下:
MESearchTextField.h
#import <UIKit/UIKit.h> @interface MESearchTextField : UITextField @end
MESearchTextField.m
通過上圖可以看到,游標初始位置實際上跟輸入框邊距是x+10起了作用,然後你一直編輯,發現游標不會到最後,會停留在關閉按鈕前面,這個是通過bounds.size.width-25來設定的。。。#import "MESearchTextField.h" @implementation MESearchTextField // 控制placeHolder的位置,左右縮20,但是游標位置不變 /* -(CGRect)placeholderRectForBounds:(CGRect)bounds { CGRect inset = CGRectMake(bounds.origin.x+100, bounds.origin.y, bounds.size.width -10, bounds.size.height);//更好理解些 return inset; } */ // 修改文字展示區域,一般跟editingRectForBounds一起重寫 - (CGRect)textRectForBounds:(CGRect)bounds { CGRect inset = CGRectMake(bounds.origin.x+10, bounds.origin.y, bounds.size.width-25, bounds.size.height);//更好理解些 return inset; } // 重寫來編輯區域,可以改變游標起始位置,以及游標最右到什麼地方,placeHolder的位置也會改變 -(CGRect)editingRectForBounds:(CGRect)bounds { CGRect inset = CGRectMake(bounds.origin.x+10, bounds.origin.y, bounds.size.width-25, bounds.size.height);//更好理解些 return inset; } @end
二、uiTextField的其他屬性
// 搜尋框 _searchFieldText.backgroundColor = UIColorFromHex(0xDEDEDE); _searchFieldText.borderStyle = UITextBorderStyleNone; _searchFieldText.font = FontLarge; _searchFieldText.textColor = ColorTextLight; _searchFieldText.placeholder = @" 搜尋"; _searchFieldText.delegate = self; _searchFieldText.layer.cornerRadius = 2; _searchFieldText.returnKeyType = UIReturnKeySearch; //設定按鍵型別 _searchFieldText.enablesReturnKeyAutomatically = YES; //這裡設定為無文字就灰色不可點 _searchFieldText.clearButtonMode = UITextFieldViewModeWhileEditing; // 出現刪除按鈕 // 設定佔位文字的顏色為紅色 [_searchFieldText setValue:ColorTextLight forKeyPath:@"_placeholderLabel.textColor"]; // 游標顏色 _searchFieldText.tintColor = ColorTextLight;
三、重寫的一些方法
– textRectForBounds: //重寫來重置文字區域
– drawTextInRect: //改變繪文字屬性.重寫時呼叫super可以按預設圖形屬性繪製,若自己完全重寫繪製函式,就不用呼叫super了.
– placeholderRectForBounds: //重寫來重置佔位符區域
– drawPlaceholderInRect: //重寫改變繪製佔位符屬性.重寫時呼叫super可以按預設圖形屬性繪製,若自己完全重寫繪製函式,就不用呼叫super了
– borderRectForBounds: //重寫來重置邊緣區域
– editingRectForBounds: //重寫來重置編輯區域
– clearButtonRectForBounds: //重寫來重置clearButton位置,改變size可能導致button的圖片失真
– leftViewRectForBounds:
– rightViewRectForBounds:
相關推薦
iOS中改變uiTextField的游標起始位置
uiTextField作為輸入框,在很多場景都會使用,一般我們都是對齊預設的佈局做一些更改,常用的可能會修改游標的顏色,placeholder的顏色,字型等等,有些修改直接設定uiTextField的屬性就可以,有些則沒有,需要重寫它提供的一些方法才可以,有些則怎麼都辦不到
ios中 input 焦點游標不垂直居中
一般在IOS中input設定了line-height會影響游標的位置,所以最好不要為input設定line-height屬性,只需設定padding即可 http://www.jianshu.com/p/4bf51a436988
ios中改變程式的status bar
有兩種: 一、在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中新增 [UIApplication
UITextField 游標的位置獲取和設定
今天做一個自定義數字鍵盤的控制元件,有需要獲取到游標位置,所以在網上找到了一段程式碼,主要是獲取游標的位置和設定游標的位置,貼出來。 /** * 游標選擇的範圍 * * @return 獲取游標選擇的範圍 */ - (NSRange)selecte
iOS UITextField設定起始字元開始位置
1.通過設定一個”左檢視” CGRect frame = self.accountTF.frame; frame.size.width = 8;// 距離左側的距離 UIView *leftview = [[UIView alloc] initWithFrame:frame]; self
RunTime運行時在iOS中的應用之UITextField占位符placeholder
指向 field 失去 程序 拷貝 ace 底層 文本 ram RunTime運行時機制 runtime是一套比較底層的純C語言API, 屬於1個C語言庫, 包含了很多底層的C語言API。 在我們平時編寫的OC代碼中, 程序運行過程時, 其實最終都是轉成了runtime的C
laravel5中make:auth後改變HomeController.php的位置報錯
laravel make auth 情況說明,laravel在make:auth後會自動在controllers目錄下生成HomeController.php文件,本人想把該文件放到controllers\Home目錄下,以便於區分後臺模塊,但是這樣一來登錄就保錯了,除了修改路由web.php中H
iOS中UITextField輸入判斷小數點後兩位
draw tab 字符 index har 位數 body keyword tst 在輸入金額的UITextField中,要給予三個規則的判斷 1. 只能輸入數字(可以通過設置鍵盤類型為Decimal Pad) 2. 小數點只能有一個 3. 小數點後最多有兩位數字 (可以通
Linux 中改變默認文件打開方式的位置
ans defaults 默認 family oca 個人 fault 打開方式 ati 全局的打開方式, /etc/gnome/defaults.list 個人的打開方式, ~/.local/share/applications/mimeapps.list
bootstrap 中關於模態框位置的自定義設定(在不改變原始碼的前提下)
用過bootstrap的童鞋們在使用模態框的時候一定見過這幾個class :modal fade modal-dialog modal-body ,至於這些class都有什麼作用,大家去bootstrap官網去查一下就知道了。
將CMD命令提示符的起始位置進行更改 / CMD起始位置發生改變後如何修改回來
具體步驟如下: 1、首先我們需要先找到命令提示符所在的檔案目錄。可以在開始執行程式中輸入CMD,一般回自動搜尋匹配。 2、右鍵點選命令提示符,在彈出選單中,選擇“開啟檔案位置”; 3、然後我們就可以進入到命令提示符所在的檔案目錄,選中該程式。
iOS中UITextField常用設定和方法
//初始化textField並設定位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; // 當輸入框沒有內容時,水印提示 提示內容為"請輸入使用者名稱" textFie
Easyui中控制視窗的左上角起始位置
1. Easyui中控制視窗的顯示左上角位置,可以在window的定義時,通過style指定:<div id="picViewWin" class="easyui-window" closed=
UITextField 初始游標初始位置如何居右閃爍 佔位符如何居右顯示
UITextField *tf = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 300, 28)]; tf.borderStyle = UITextBorderStyleRoundedRect; [self.view
IOS 中設定UITextView 顯示文字的游標
建立一個UITextView 預設是啟動鍵盤 游標位於首位置, 記錄下使用心得 UITextView *_textView=[[UITextView alloc]initWithFrame:self.view.frame]; _textView.text=textStr
ios 中使用xib拖拽的scrollview中子控制元件位置偏移
1.問題描述:在xib中拖拽了一個scrollview,並且為之添加了約束,然後從xib中例項化了自定義view新增到scrollview後,發現這個自定義view的子控制元件位置都偏移了。 2.問題
IOS XIB中設定了約束後無法在程式碼中改變檢視的frame
今天在修改程式碼的時候發現了一些問題,便做了一下優化 先上圖說事: 在這裡的播放列表cell中是兩個UILabel分別顯示的是作品名和作者名。沒修改之前,兩個lab實在XIB中初始化和設定約束的,出來的效果就是無法動態的根據字串長度來增加lab的寬度,或
sqlserver、mysql: 取給定字元在指定串中的起始位置
前段時間做DB移植,遷移過後,遇見一些sql語法上的問題。其中一個就是有關charindex的。 1. 首先看看sqlserver的charindex。用過的都知道,這是一個返回字串中指定表示式的起始位置的函式,語法如下: charindex(expr1,expr2
iOS中使用blend改變圖片顏色
這個屬性很有意思自己可以看看,點選這裡檢視文章 下面是一個方法改變圖片的顏色的方法 func drawImageColor(image: UIImage,color: UIColor) ->
iOS TextField 獲取游標的位置
最近在做一個專案的時候,發現沒有獲取游標的方法。進過研究後,出來分享給大家: 1、新建一個工程,我使用的Xcode 7.2 也就是 iOS9.2,託轉一個TextField; 2、新建一個類別,對TextFIeld進行一個擴充套件,也就是新建一個類別; 這是.h檔案