如何检测textField中的任何文本更改?委托方法shouldChangeCharactersInRange适用于某些事情,但它并不能完全满足我的需要.由于它返回YES,因此textField文本不可用于其他观察者方法.
例如,在我的代码calculateAndUpdateTextFields中没有获得更新的文本,用户已键入.
他们是否有办法获得类似textChangedJava事件处理程序的东西.
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
{
if (textField.tag == kTextFieldTagSubtotal
|| textField.tag == kTextFieldTagSubtotalDecimal
|| textField.tag == kTextFieldTagShipping
|| textField.tag == kTextFieldTagShippingDecimal)
{
[self calculateAndUpdateTextFields];
}
return YES;
}
Run Code Online (Sandbox Code Playgroud) iOS App Store有一个蓝色圆形框架按钮,用于购买/下载应用程序.
在我的应用程序中,您可以下载其他内容,我希望有一个类似的按钮,只是因为它看起来很熟悉用户.
如果您不知道,我的意思是:这些按钮,如"3.99美元"

这怎么可能?
如何动态更改占位符颜色UITextField?这始终是相同的系统颜色.
xib编辑器中没有选项.
有没有任何想法或代码示例如何更改UISearchBar的占位符文本的文本颜色?
我已经看到一些答案显示如何通过覆盖drawPlaceholderInRect:方法来更改UITextField的placeHolder文本颜色,如下所示:
iPhone UITextField - 更改占位符文本颜色
但这并不能保持现有的属性,如对齐,字体等......什么是解决这个问题的更好方法?
我有一个UITextField带占位符文本集的3 .其中一个UITextField我希望占位符文本为红色.
现在谷歌搜索后,似乎最好的方法是子类UITextField和覆盖drawPlaceholderInRect.
我如何进行子类化和重写drawPlaceholderInRect?我没有找到任何代码示例或教程,我是Objective-c和iOS开发的新手,所以发现它很难解决.
回答:
创建了一个新的objective-c类,称为CustomUITextFieldPlaceholder子类UITextField.在CustomUITextFieldPlaceholder.m下面的代码中
@implementation CustomUITextFieldPlaceholder
- (void)drawPlaceholderInRect:(CGRect)rect {
// Set colour and font size of placeholder text
[[UIColor redColor] setFill];
[[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:12]];
}
@end
Run Code Online (Sandbox Code Playgroud)
在您的项目中实现上述内容
#import "CustomUITextFieldPlaceholder.h"
Run Code Online (Sandbox Code Playgroud)
和
IBOutlet CustomUITextFieldPlaceHolder *txtName;
Run Code Online (Sandbox Code Playgroud)
注意:这是有效的,我相信是正确的做法,但我还没有完全测试它.希望这个例子在我的情况下帮助其他人.
编辑:
变
[[UIColor redColor] setFill];
Run Code Online (Sandbox Code Playgroud)
对于
[[UIColor colorWithRed:255.0 green:0.0 blue:0.0 alpha:0.7] setFill];
Run Code Online (Sandbox Code Playgroud)
这样我就可以将不透明度设置为70%来模仿默认占位符.
我正在努力实现这个问题的答案.问题是:-[drawTextInRect]显然没有被调用,并且设置阴影-[drawRect]不会使UITextField的文本被遮蔽.
另一个奇怪的事情是,即使我的子类实现-[drawTextInRect]和-[drawRect]完全为空(甚至不是对super的调用),也会绘制文本字段的文本.
我正在尝试将UITextField的占位符文本设置为其他颜色。我了解到我需要继承并重写drawPlaceholderInRect方法。
(void) drawPlaceholderInRect:(CGRect)rect {
[[UIColor blueColor] setFill];
[[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:16]];
}
Run Code Online (Sandbox Code Playgroud)
这是到目前为止的内容,但是我无法弄清楚如何正确处理它。最后一行让我感到困惑,因为我不知道如何将其映射到MonoTouch / C#对象。
using System;
using MonoTouch.UIKit;
using MonoTouch.Foundation;
using System.Drawing;
namespace MyApp
{
[Register("CustomUITextField")]
public class CustomUITextField:UITextField
{
public CustomUITextField () :base()
{
}
public CustomUITextField (IntPtr handle) :base(handle)
{
}
public override void DrawPlaceholder (RectangleF rect)
{
UIColor col = new UIColor(0,0,255.0,0.7);
col.SetFill();
//Not sure what to put here
base.DrawPlaceholder (rect);}
}
}
Run Code Online (Sandbox Code Playgroud) 使用 Xcode v7.2 - iOS v9.2 - iPhone5S Swift
我正在尝试创建一个UITextField带有浅灰色占位符文本的透明。
我用过了:
self.userEmailTextField.backgroundColor = UIColor.clearColor()
Run Code Online (Sandbox Code Playgroud)
占位符文本会消失,但在使用whiteColor、 或blueColor背景时会出现。
白色背景:

清晰的背景:

我想UITextField在我的iPhone应用程序中放置临时文本.Android具有提示属性以在文本字段中显示临时文本.我如何在iPhone开发中做同样的事情?
ios ×10
uitextfield ×8
iphone ×4
objective-c ×4
swift ×3
c# ×2
subclass ×2
xamarin.ios ×2
cocoa-touch ×1
drawing ×1
google-maps ×1
ipad ×1
placeholder ×1
shadow ×1
uibutton ×1
uisearchbar ×1
xamarin ×1