gpt4 book ai didi

ios - 使 UINavigationBar 标题的所有实例都小写而不进行子类化?

转载 作者:行者123 更新时间:2023-11-28 22:30:21 25 4
gpt4 key购买 nike

此 iOS 应用程序中的某些标题是在 Storyboard中定义的。一些标题是以编程方式设置的。有没有一种简单的方法(也许是 Obj-C 类别?)使所有标题都小写而不进行子类化?

最佳答案

使用一点 objective-c 魔法是可能的,使用 method_exchangeImplementations (又名“方法调配”)

#import <objc/runtime.h>

@interface UINavigationItem (New)
@end

@implementation UINavigationItem (New)

- (void)setTitleLower:(NSString *)title {
[self setTitleLower:[title lowercaseString]];
}

+ (void)load {
method_exchangeImplementations(class_getInstanceMethod(self, @selector(setTitle:)), class_getInstanceMethod(self, @selector(setTitleLower:)));
}

@end

现在每次调用 someNavItem.title = @"Whatever" ([UINavigationItem setTitle:(NSString*)title]) 都应该通过 setTitleLower,这反过来也调用原始 setTitle 并稍作修改,将标题小写。

我会避免仅仅为了小写每个 UINavigationItem 的所有标题而实现这样一个类别。我猜你正在试验类别。

关于ios - 使 UINavigationBar 标题的所有实例都小写而不进行子类化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17625221/

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