UITextField右对齐iOS 7

UITextField右对齐iOS 7,ios,ios7,uitextfield,Ios,Ios7,Uitextfield,我有一个问题,当在iOS7上正确对齐UITextField时,当用户键入“Space”时,它不会立即出现。如果我键入另一个字符,将显示空格 在iOS 6中,这种情况不会发生 有人知道如何解决这个问题吗?我不知道如何解决这个问题,但我有一个建议,你可以同时用一个非常相似的unicode字符(如U+00A0)替换所有空格,然后在键入另一个字符后将其切换回去 只需在.h中包含,设置UITextField.delegate=self在viewDidLoad中 然后执行如下操作: //!!!!!***

我有一个问题,当在iOS7上正确对齐UITextField时,当用户键入“Space”时,它不会立即出现。如果我键入另一个字符,将显示空格

在iOS 6中,这种情况不会发生


有人知道如何解决这个问题吗?

我不知道如何解决这个问题,但我有一个建议,你可以同时用一个非常相似的unicode字符(如U+00A0)替换所有空格,然后在键入另一个字符后将其切换回去

只需在.h中包含
,设置
UITextField.delegate=self在viewDidLoad中

然后执行如下操作:

 //!!!!!*****!*!*!!!*!*** Make SURE you set the delegate code before doing this (as mentioned in the original SO answer)

 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if ([string isEqualToString:@" "]) {
        textField.text = [textField.text stringByReplacingCharactersInRange:range withString:@"\u00A0"];//U+00A0 is a unicode character that seems very similar to space but isn't treated as whitespace...
    } else {
        textField.text = [textField.text stringByReplacingOccurrencesOfString:@"\u00A0" withString:@" "];//switches our u+00A0 unicode character back to a white-space everytime a space is not typed.
    }
    return (![string isEqualToString:@" "]);//returns YES if it doesn't equal whitespace, else NO (because we did a manual replace)
}
*注意,我还没有机会测试这个,因为我还没有接近xCodeProj。让我知道它是如何工作的:)如果有人看到任何错误,请随时进行编辑:)谢谢大家

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (range.location == textField.text.length && [string isEqualToString:@" "]) {
        // ignore replacement string and add your own
        textField.text = [textField.text stringByAppendingString:@"\u00a0"];
        return NO;
    }
    // for all other cases, proceed with replacement
    return YES;
}
从文本中删除代码的步骤

self.txtFirstName.text = [self.txtFirstName.text stringByReplacingOccurrencesOfString:@"\u00a0" withString:@" "];

从这个答案中-

请提供更多细节或您所做的工作,以便我们能够理解properly@AkshitZaveri也许苹果仍然把U+2004理解为一个空间。。。尝试使用类似空格的其他unicode字符!就像U+3000(查找并替换)一样,是的,您发布的代码与此代码相同(实际上是这样),U+00A0是正确的unicode字符!我们的代码中唯一的主要区别是,在我的代码中,在输入完unicode字符后,它会将其替换回一个空格;在你的代码中,它不会,它们永远保持为U+00A0,而在你的代码中,它只会在用户最后键入时进行更改,这可能是最好的(除非你要把U+00A0改回来,你需要这样做,即使他们没有在末尾打字,这样在我的字符中也不会起作用……我会在新字符中编辑为我的!另一个问题是:假设你先键入“a”,然后键入空格,然后键入“b”。现在删除“b”。空格消失,因为您已替换了代码。因此,实际上最好不要替换代码。在使用文本字段中的文本之前,请完全替换代码。@AkshitZaveri精彩之处!哇!:)您可以在我的代码中解决这两个问题…更改范围很容易,退格操作也不会太难…但我将只提交您发布的代码。我无法正常工作,我必须点击空格键两次,以开始在字符串末尾添加空格,退格按钮删除最后一个空格字符时也会发生同样的情况。