textfield禁止输入的输入内容怎么获取

效果如下:
ViewController.h
1 #import &UIKit/UIKit.h&
3 @interface ViewController : UIViewController&UITextFieldDelegate&
4 @property (strong, nonatomic) IBOutlet UITextField *txtLimitI
ViewController.m
1 #import "ViewController.h"
3 @interface ViewController ()
4 - (void)layoutUI;
5 - (BOOL)validateNumberByASCII:(NSString *)string;
6 - (BOOL)validateNumberByRange:(NSString *)string;
7 - (BOOL)validateNumberByRegExp:(NSString *)string;
10 @implementation ViewController
12 - (void)viewDidLoad {
[super viewDidLoad];
[self layoutUI];
18 - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
23 - (void)layoutUI {
_txtLimitInput.placeholder = @"请输入数字";
//第一种方式:设置键盘类型
//_txtLimitInput.keyboardType = UIKeyboardTypeDecimalP
//第二种方式:通过 UITextFieldDelegate 的 shouldChangeCharactersInRange: 方法
_txtLimitInput.delegate =
33 #pragma mark - 三种判断字符串内容是否是有效数字的方式
『ASCII码』判断字符串内容是否是有效数字
@param string 需要验证的字符串
@return 字符串内容是否是有效数字
41 - (BOOL)validateNumberByASCII:(NSString *)string {
BOOL isValid = YES;
NSUInteger len = string.
if (len & 0) {
for (NSUInteger i=0; i& i++) {
NSUInteger asciiCode = [string characterAtIndex:i];
if (asciiCode & 48 || asciiCode & 57) {
isValid = NO;
return isV
『字符范围』判断字符串内容是否是有效数字
@param string 需要验证的字符串
@return 字符串内容是否是有效数字
63 - (BOOL)validateNumberByRange:(NSString *)string {
BOOL isValid = YES;
NSUInteger len = string.
if (len & 0) {
NSCharacterSet *validNumberCS = [NSCharacterSet characterSetWithCharactersInString:@""];
NSUInteger singleStrIndex = 0;
NSString *singleStr = [string substringWithRange:NSMakeRange(singleStrIndex, 1)];
NSRange range = [singleStr rangeOfCharacterFromSet:validNumberCS];
if (range.length == 0) {
isValid = NO;
singleStrIndex++;
} while (singleStrIndex & len);
return isV
『正则表达式;推荐使用,不用循环遍历,控制更灵活』判断字符串内容是否是有效数字
@param string 需要验证的字符串
@return 字符串内容是否是有效数字
89 - (BOOL)validateNumberByRegExp:(NSString *)string {
BOOL isValid = YES;
NSUInteger len = string.
if (len & 0) {
NSString *numberRegex = @"^[0-9]*$";
NSPredicate *numberPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", numberRegex];
isValid = [numberPredicate evaluateWithObject:string];
return isV
100 #pragma mark - UITextFieldDelegate
101 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
//return [self validateNumberByASCII:string];
//return [self validateNumberByRange:string];
return [self validateNumberByRegExp:string]; //推荐方式
Main.storyboard
1 &?xml version="1.0" encoding="UTF-8" standalone="no"?&
2 &document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="vXZ-lx-hvc"&
&dependencies&
&deployment identifier="iOS"/&
&plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/&
&/dependencies&
&!--View Controller--&
&scene sceneID="ufC-wZ-h7g"&
&viewController id="vXZ-lx-hvc" customClass="ViewController" sceneMemberID="viewController"&
&layoutGuides&
&viewControllerLayoutGuide type="top" id="jyV-Pf-zRb"/&
&viewControllerLayoutGuide type="bottom" id="2fi-mo-0CV"/&
&/layoutGuides&
&view key="view" contentMode="scaleToFill" id="kh9-bI-dsS"&
&rect key="frame" x="0.0" y="0.0" width="600" height="600"/&
&autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/&
&subviews&
&textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="mb3-C5-UpN"&
&rect key="frame" x="200" y="285" width="200" height="30"/&
&constraints&
&constraint firstAttribute="width" constant="200" id="8dl-R0-OzV"/&
&/constraints&
&fontDescription key="fontDescription" type="system" pointSize="14"/&
&textInputTraits key="textInputTraits"/&
&/textField&
&label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="限制 Text Field 输入的内容类型" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8zf-7E-ija"&
&rect key="frame" x="200" y="255" width="196" height="17"/&
&fontDescription key="fontDescription" type="system" pointSize="14"/&
&color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/&
&nil key="highlightedColor"/&
&/subviews&
&color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/&
&constraints&
&constraint firstItem="mb3-C5-UpN" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="Dh5-bw-2LN"/&
&constraint firstItem="mb3-C5-UpN" firstAttribute="centerY" secondItem="kh9-bI-dsS" secondAttribute="centerY" id="Lby-hq-mya"/&
&constraint firstItem="mb3-C5-UpN" firstAttribute="leading" secondItem="8zf-7E-ija" secondAttribute="leading" id="SyI-SC-iNN"/&
&constraint firstItem="mb3-C5-UpN" firstAttribute="top" secondItem="8zf-7E-ija" secondAttribute="bottom" constant="13" id="yuO-kC-OCZ"/&
&/constraints&
&connections&
&outlet property="txtLimitInput" destination="mb3-C5-UpN" id="cYi-Ep-sWq"/&
&/connections&
&/viewController&
&placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/&
&/objects&
51 &/document&
阅读(...) 评论()
如果您想转载,请注明出处(原创内容,请尊重个人劳动成果)
如果您有任何意见或建议,欢迎留言
感谢您的阅读,敬请关注我的后续博客文章2279人阅读
iOS控件(4)
textfield-(void) textFieldDidEndEditing:(UITextField *)textField
[Title_ resignFirstResponder];
//获取输入的内容
strField_ = [Title_ text];
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
if ([text isEqualToString:@&\n&]) {
[textView resignFirstResponder];
return NO;
}else if(range.location &= 500)
//如果输入超过规定的字数20,就不再让输入
strView_ =
return YES;
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:60973次
排名:千里之外
原创:22篇
转载:21篇
(3)(1)(1)(2)(3)(3)(3)(1)(4)(1)(2)(4)(3)(4)(9)当前位置:
& Swift - 文本输入框(UITextField)的用法
Swift - 文本输入框(UITextField)的用法
发布:hangge
阅读:17307
(本文代码已升级至Swift3)
1,文本框的创建,有如下几个样式:
UITextBorderStyle.none:无边框
UITextBorderStyle.line:直线边框
UITextBorderStyle.roundedRect:圆角矩形边框
UITextBorderStyle.bezel:边线+阴影
圆角矩形边框样例:
let textField = UITextField(frame: CGRect(x:10, y:60, width:200, height:30))
//设置边框样式为圆角矩形
textField.borderStyle = UITextBorderStyle.roundedRect
self.view.addSubview(textField)
2,文本框提示文字
textField.placeholder="请输入用户名"
3,文字大小超过文本框长度时自动缩小字号,而不是隐藏显示省略号
textField.adjustsFontSizeToFitWidth=true
//当文字超出文本框宽度时,自动调整文字大小
textField.minimumFontSize=14
//最小可缩小的字号
4,水平/垂直对齐方式
/** 水平对齐 **/
textField.textAlignment = .right //水平右对齐
textField.textAlignment = .center //水平居中对齐
textField.textAlignment = .left //水平左对齐
/** 垂直对齐 **/
textField.contentVerticalAlignment = .top
//垂直向上对齐
textField.contentVerticalAlignment = .center
//垂直居中对齐
textField.contentVerticalAlignment = .bottom
//垂直向下对齐
5,背景图片设置
textField.borderStyle = .none //先要去除边框样式
textField.background = UIImage(named:"background1");
6,清除按钮(输入框内右侧小叉)
textField.clearButtonMode = .whileEditing
//编辑时出现清除按钮
textField.clearButtonMode = .unlessEditing
//编辑时不出现,编辑后才出现清除按钮
textField.clearButtonMode = .always
//一直显示清除按钮
7,设置文本框关联的键盘类型
Default:系统默认的虚拟键盘
ASCII Capable:显示英文字母的虚拟键盘
Numbers and Punctuation:显示数字和标点的虚拟键盘
URL:显示便于输入url网址的虚拟键盘
Number Pad:显示便于输入数字的虚拟键盘
Phone Pad:显示便于拨号呼叫的虚拟键盘
Name Phone Pad:显示便于聊天拨号的虚拟键盘
Email Address:显示便于输入Email的虚拟键盘
Decimal Pad:显示用于输入数字和小数点的虚拟键盘
Twitter:显示方便些Twitter的虚拟键盘
Web Search:显示便于在网页上书写的虚拟键盘
数字键盘使用样例:
textField.keyboardType = UIKeyboardType.numberPad
8,使文本框在界面打开时就获取焦点,并弹出输入键盘
textField.becomeFirstResponder()
9,使文本框失去焦点,并收回键盘
textField.resignFirstResponder()
10,设置键盘return键的样式
textField.returnKeyType = UIReturnKeyType.done //表示完成输入
textField.returnKeyType = UIReturnKeyType.go //表示完成输入,同时会跳到另一页
textField.returnKeyType = UIReturnKeyType.search //表示搜索
textField.returnKeyType = UIReturnKeyType.join //表示注册用户或添加数据
textField.returnKeyType = UIReturnKeyType.next //表示继续下一步
textField.returnKeyType = UIReturnKeyType.send //表示发送
以发送样式(send)为例:
11,键盘return键的响应
import UIKit
class ViewController: UIViewController,UITextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let textField = UITextField(frame: CGRect(x:10,y:160,width:200,height:30))
//设置边框样式为圆角矩形
textField.borderStyle = UITextBorderStyle.roundedRect
textField.returnKeyType = UIReturnKeyType.done
textField.delegate=self
self.view.addSubview(textField)
func textFieldShouldReturn(_ textField: UITextField) -& Bool {
//收起键盘
textField.resignFirstResponder()
//打印出文本框中的值
print(textField.text)

我要回帖

更多关于 textfield获取焦点 的文章

 

随机推荐