Tag: uitextfielddelegate

ViewController实现UITextFieldDelegate时出错

在我的ViewController类中实现UITextFieldDelegate时,在文本字段中input第一个字符时会引发以下错误: -[MyViewController respondsToSelector:]: message sent to deallocated instance… 所以,我试着创build一个单独的类(只inheritanceNSObject)并实现UITextFieldDelegate。 猜猜看,它完美的工作。 然而,这引起了一些其他问题,因为我必须做很多丑陋的跨class级交stream,我想避免。 以下是我的应用程序委托代码的相关部分: @interface RMSAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> @property (nonatomic, retain) UIViewController* myViewController; @end @implementation MyAppDelegate @synthesize myViewController; – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { myViewController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; [self.window setRootViewController:myViewController]; [self.window makeKeyAndVisible]; return YES; } @end ..这是什么显示: @interface MyViewController : UIViewController <UITextFieldDelegate> @property […]

UIView自动移动uitextfield键盘

所以我手上有一个很奇怪的问题,search时间一点也不提供。 我有一个包含uitextfield的uview。 现在最初这个视图在可见屏幕之外,坐标如x = -500,y = -500。 但是,按一个button按下此视图animation并移动到屏幕的中心。 现在,每当我点击这个视图的子视图的uitextfield时,这个视图就会移回到它在屏幕之外的原始坐标。 我疯狂地检查了我的代码,没有任何东西在外面再次移动视图。任何帮助解释这个非常陌生的行为将非常感激。 该代码将视图移动到屏幕上 – (IBAction)Register:(id)sender { //(self.view.frame.size.width/2)-(self.SignUp_Screen.frame.size.width/2); //self.login_Screen.hidden = YES; self.blurView.hidden = NO; //self.SignUp_Screen.layer.zPosition = 5; NSLog(@"Register"); self.SignUp_Screen.hidden = NO; [UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ self.SignUp_Screen.frame = CGRectMake(35, 50,self.SignUp_Screen.frame.size.width , self.SignUp_Screen.frame.size.height); } completion:^(BOOL finished) { }]; } 这些是textfield的委托方法 -(void)textFieldDidEndEditing:(UITextField *)textField { NSLog(@"TextFieldEndEditing"); [textField resignFirstResponder]; } -(BOOL)textFieldShouldReturn:(UITextField *)textField […]

无法在iOS中使用NSNumberFormatter进行货币转换

我有一个UITextField从我的应用程序中的用户接收数字input。 然后在我的shouldChangeCharactersInRange委托方法中使用NSNumberFormatter将此文本字段的值转换为货币格式。 当我input号码“12345678”时,号码被正确地转换为$ 123456.78(这些号码一次input一位数,直到这一点,一切正常)。 但是,如果在此之后input另一个数字(例如9),而不是显示“1234567.89”,则会显示数字“1234567.88”。 如果在此之后input另一个数字,则会在此之后input完全不同的数字(我正在使用应用程序中的数字键盘input数字,下面是我的代码: NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; [formatter setNumberStyle:NSNumberFormatterCurrencyStyle]; modifiedValue = [formatter stringFromNumber:[NSNumber numberWithFloat:[modifiedValue floatValue]]]; textField.text = modifiedValue; 导致这种不寻常的转换的线是这样的: modifiedValue = [formatter stringFromNumber:[NSNumber numberWithFloat:[modifiedValue floatValue]]]; 任何人都可以看到这是为什么?

检测文本框内的位置和更改内容

如何检查我的textfieldDidChange方法中发生了什么变化? let str1 = "Hello how are you @Marie, nice day uh?" 所以想象我的用户决定编辑文本和链接标记而不是玛丽 let str2 = "Hello how are you @ Markus, nice day uh?" 我需要一个方法来检测@ Markus在文本字段中的变化,但不会改变string中的其他内容。 我能够检测到最后一个单词,第一个单词等等,但是它的重要性在于能够查看文本内部的变化 我在想一个方法 a = "Hello how are you" b = newly changed text field c = ", nice day uh?" let str3 = a + b + c […]

Swift可重用的UITextFieldDelegate

我想实现一个可重用的UITextFieldDelegate类,如下所示: class CustomTextFieldDelegate : NSObject, UITextFieldDelegate 所有委托协议方法都正确实施。 在controller ,我将delegate分配给UITextField textField.delegate = CustomTextFieldDelegate() 问题是没有任何委托函数被调用。 但是,当我从控制器实施委托协议,然后事情工作正常 class CustomTableViewController: UITableViewController, UITextFieldDelegate 任何想法是怎么回事?

当我符合协议时,关于分配给id <UITextFieldDelegate>的警告

我的视图控制器符合UITextFieldDelegate,但是当我尝试将我的文本字段的.delegate字段设置为self时,我收到警告: “从不兼容的types'AddReviewViewController * const __strong'分配给'id'” 我的头文件是这样的: #import <UIKit/UIKit.h> @interface AddReviewViewController : UIViewController <UITextFieldDelegate> @property (nonatomic) int storeID; @end 所以,正如你所看到的,我宣布它符合协议。 在.m文件中,我有这个: @property (strong, nonatomic) IBOutlet UITextView *reviewTextView; 在“@interface AddReviewViewController()”部分 然后,在viewDidLoad中,我这样做: _reviewTextView.delegate = self; 那是我得到警告的地方。 我已经尝试清理和重build,并重新启动XCode。 我在这里错过了很明显的东西吗 我遵守协议…. 编辑:感谢您的快速帮助。 在我睡眠不足的状态下,我不停地重读和发誓,这正是我所做的,但是,错字,错字。 我几分钟不能标记答案,但问题解决了,谢谢!

如何检查UITextField值的特定types的字符,例如字母或数字?

我想要做的就是在下面的if语句中设置一些布尔值为true,如果textField中包含字母,数字,破折号和空格以外的任何内容。 然后在电子邮件字段中检查有效的电子邮件。 这是我如何检查长度: if countElements(textField.text!) < 2 || countElements(textField.text) > 15 { errorLabel.text = "Name must have between 2 and 15 characters." self.signUpView.signUpButton.enabled = false } else { errorLabel.text = "" self.signUpView.signUpButton.enabled = true } 这个if语句在UITextFieldDelegate方法的textFielddidEndEditing里面。 我有一种感觉,我将不得不使用某种forms的正则expression式来检查一个有效的电子邮件。 使用正则expression式来检查一个字段是否只包含我允许的字符,并返回一个布尔值,告诉我文本字段是否包含不允许的字符,这样才能显示错误信息。 有没有一些首选的方法来做到这一点? 在Objective-C中,我使用NSCharacterSet,但不知道如何在这里实现。 谢谢你的时间

UITextFieldinput金额

我正在开发一个销售点应用程序。 所以我想 比方说用户input100000但我希望它自动显示100,000 。 1000000 1,000,000变成1,000,000 第二个问题是,我不希望用户能够input. 他们自己。 第三个问题是,既然这是钱,我们不能让用户在开始时input0。 有任何想法吗? 到目前为止,我已经设法限制input只有十进制数字 func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { let numberSet: NSCharacterSet = NSCharacterSet.decimalDigitCharacterSet().invertedSet; return string.stringByTrimmingCharactersInSet(numberSet).length > 0 || string == ""; } 非常感谢你 PS:我不需要任何小数位,我们还需要考虑当用户改变光标位置时,退格

更改自定义文本字段背景颜色和文本颜色iOS Swift

我正在使用下面的自定义文本字段类来更改文本字段的外观。 现在,我们需要在用户开始编辑和结束编辑文本字段时更改文本字段的背景颜色,文本颜色和占位符颜色。 如何做到这一点,使用这个类。 import Foundation import UIKit class CustomTextField: UITextField{ required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) //Border self.layer.cornerRadius = 15.0; self.layer.borderWidth = 1.5 self.layer.borderColor = UIColor.whiteColor().CGColor //Background self.backgroundColor = UIColor(white: 1, alpha: 0.0) //Text self.textColor = UIColor.whiteColor() self.textAlignment = NSTextAlignment.Center } }

如何将光标从一个文本字段自动移动到另一个编程的Swift ios?

func textFieldDidBeginEditing(textField: UITextField) { scrlView.setContentOffset(CGPointMake(0, textField.frame.origin.y-70), animated: true) if(textField == firstDigit){ textField.becomeFirstResponder() secondDigit.resignFirstResponder() } else if(textField == secondDigit){ textField.becomeFirstResponder() thirdDigit.resignFirstResponder() } else if(textField == thirdDigit){ //textField.becomeFirstResponder() fourthDigit.becomeFirstResponder() } 我使用四个文本框来input一次只能input一个数字的OTP。 input数字后,我需要将光标自动移动到下一个文本框。