是否有办法检测何时在空白的iPhone键盘上按下Backspace/ Delete键UITextField
?我想知道什么时候Backspace只有在UITextField
空的情况下被按下.
根据@Alex Reynolds在评论中提出的建议,我在创建文本字段时添加了以下代码:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleTextFieldChanged:)
name:UITextFieldTextDidChangeNotification
object:searchTextField];
Run Code Online (Sandbox Code Playgroud)
收到此通知(handleTextFieldChanged
调用函数),但Backspace在空字段中按键时仍然不会.有任何想法吗?
这个问题似乎有些混乱.我想在Backspace按下键时收到通知.而已.但是当解决方案UITextField
已经空了时,解决方案也必须工作.
为了检测Backspace,我已经覆盖了DeleteBackward
方法(应该适用于iOS5 +)
var input = new BackspaceTextField(RectangleF.Empty);
etc
input.BecomeFirstResponder();
Run Code Online (Sandbox Code Playgroud)
这是代码
public sealed class BackspaceTextField : UITextField
{
public BackspaceTextField(RectangleF frame) : base(frame)
{
}
public override void DeleteBackward ()
{
Console.WriteLine ("DeleteBackward");
}
}
Run Code Online (Sandbox Code Playgroud)
当我按"Backspace"按钮时没有任何反应.我希望应该出现"DeleteBackward"消息
环境:iOS8,xamarin
编辑:0
关于objective-c的类似问题:检测UITextField中的退格
我做了额外的检查.DeleteBackward
是来自UIKeyInput协议的方法,所以我检查insertText
方法,这个方法可以正常工作.
public override void InsertText (string text)
{
base.InsertText(text);
}
Run Code Online (Sandbox Code Playgroud)
我已经检查deleteBackward
了objective-c,它也很完美.
您对如何在iOS8中的UITextField中检测退格有任何想法吗?
你能澄清为什么DeleteBackward
没有调用这个方法吗?
编辑:1
我已经向Xamarin的论坛提交了同样的问题.看起来像iOS8 + xamarin中的一个错误,因为在iOS 7.1中可以正常工作.
这是一个错误.这是细节