小编Ste*_*eve的帖子

如何禁用 UITextField 的选择?

我使用 UITextField 是因为我想要一个自定义的弹出式键盘。但是,我不希望用户能够更改插入点或访问复制、粘贴菜单。

我发现了两个有用的 stackoverflow 问题,并尝试实现它们:

我通过继承 UITextField 并实现方法删除了菜单:

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

但是,当用户双击该字段时,我未能阻止该字段被选中:

我曾尝试删除我认为对选择行为负责的手势识别器,但没有成功。那么我做错了什么?

@property (nonatomic, strong) MinimalTextField *inputText;
...
@synthesize inputText;
...

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear: animated];    
    NSLog(@"%ld gestureRecognizers initially ", (long)inputText.gestureRecognizers.count);

    for (UIGestureRecognizer *gestureRecognizer in inputText.gestureRecognizers) {        
        if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
            UITapGestureRecognizer *tapGestureRecognizer = (UITapGestureRecognizer *)gestureRecognizer;
            if ([tapGestureRecognizer numberOfTapsRequired] == 2) {
                NSLog(@"found & removed: %@", tapGestureRecognizer);
                [inputText removeGestureRecognizer:tapGestureRecognizer];
            }
        }
        if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]) …
Run Code Online (Sandbox Code Playgroud)

objective-c uitextfield ios

5
推荐指数
2
解决办法
4602
查看次数

如何在 Swift 3.0 中将字符串转换为 UIColor?

我正在尝试将使用预定义颜色列表的现有程序从 Objective-C 转换为 Swift。原始代码使用 Selector 提取一个UIColor基于它的名称表示为NSString

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

-(UIColor *)getColor:(NSString*)colorName
{
    SEL selColor = NSSelectorFromString(colorName);
    NSString *errorMessage = [NSString stringWithFormat:@"Invalid color name: %@ !!!", colorName];
    NSAssert([UIColor respondsToSelector:selColor] == YES, errorMessage);
    UIColor *mycolor = [UIColor performSelector:selColor];
    return mycolor;
}

+ (instancetype)turquoiseColor {
    return UIColorFromRGB(0x40E0D0);
}

+ (instancetype)mediumTurquoiseColor {
    return UIColorFromRGB(0x48D1CC);
}
Run Code Online (Sandbox Code Playgroud)

但是,我一直无法弄清楚如何使用 Swift 3.0 实现相同的功能,或者使用 Selector 是否是最好的技术。

func UIColorFromRGB(_ rgbValue: UInt) -> UIColor …
Run Code Online (Sandbox Code Playgroud)

selector uicolor ios swift3

3
推荐指数
1
解决办法
5693
查看次数

标签 统计

ios ×2

objective-c ×1

selector ×1

swift3 ×1

uicolor ×1

uitextfield ×1