gpt4 book ai didi

ios - NSMutableAttributedString 应用崩溃

转载 作者:行者123 更新时间:2023-11-28 22:00:18 27 4
gpt4 key购买 nike

我在设置此 NSMutableAttributedString 时对范围做了一些错误(我认为)。谁能告诉我为什么这会导致我的程序崩溃?在我看来是对的,但我显然错了!谢谢。

NSString *placeHolderString = @"USERNAME";
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] init];
float spacing = 5.0f;

// crashes on this line
[attributedString addAttribute:NSKernAttributeName
value:@(spacing)
range:NSMakeRange(0, [placeHolderString length])];

self.userNameTextField.attributedPlaceholder = attributedString;

最佳答案

我认为导致您出现问题的原因是您从来没有真正考虑过您的 placeholderString。此外,您的值参数可以简单地使用 numberWithFloat,因为应用程序会一直知道您使用的是什么类型。

一旦您考虑了 placeHolderString,您将使用 attributeString 的长度,因为它现在只包含您的 placeholderString< 的内容。然后,我们只需使用 UITextField 属性 attributedText 简单地复制包含您的属性的字符串。

NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:placeHolderString];
float spacing = 5.0f;
[attributeString addAttribute:NSKernAttributeName
value:[NSNumber numberWithFloat:spacing]
range:(NSRange){0,[attributeString length]}];
userNameTextField.attributedText = [attributeString copy];

对于更多上下文,存在诸如 NSUnderlineStyleAttributeName 之类的属性,您可以使用 NSMutableAttributedString 做一些非常强大的事情。有关选项,请参阅文档。

关于ios - NSMutableAttributedString 应用崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25336462/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com