2

プライベート API を使用せずに の選択背景色を取得 することは可能ですか?UITextField

4

4 に答える 4

2

いいえ、そのためのパブリック API はありません。

ただし、プライベート API で試すことができます。

UITextFieldという名前のインスタンス メソッドがselectionHighlightColorありUIColor、同じ名前のクラス メソッドがあります。どちらも同じ色を返します[UIColor colorWithRed:0 green:.33 blue:.65 alpha:.2]

于 2013-07-11T12:52:55.573 に答える
1

利用可能な実際のメソッドはありませんが、UILongPressGestureRecognizer を使用してトリックを実行するメソッドを書きました。選択した背景色を設定するか、単に読み取るかが不明ですか? しかし、これを試してみると、いくつかのアイデアが得られるかもしれません。

-(void)viewDidLoad
{
     UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(selectionDetected:)];
    longPress.minimumPressDuration=0.3;//you could vary this value for whatever you prefer
    [self.yourTextField addGestureRecognizer:longPress];
    [longPress release];
}

-(void)selectionDetected:(UILongPressGestureRecognizer*)longPress
{    
    if(longPress.state==1)
    {
        self.yourTextField.backgroundColor = [UIColor blueColor];//selected
    }
    else if(longPress.state==3)
    {
        self.yourTextField.backgroundColor= [UIColor orangeColor];//no longer selected..put back to original color
    }
}

ユーザーが指を離すまで (画面上を移動しても)、「選択された」色のままです。これが本当にあなたが探しているものかどうかはわかりませんが、誰かの助けになるかもしれません.

于 2013-07-17T23:32:55.790 に答える
1

phix23 の回答に基づいて、UITextFieldサブクラスを作成してプロパティを上書きできselectionHighlightColorます。お気に入り:

- (UIColor *)selectionHighlightColor{
    return [UIColor clearColor];
}

本番環境でも iOS 9.3 でテスト済み

于 2016-05-03T08:49:17.493 に答える
0

いいえ Apple はそのような API を提供していません。

于 2013-07-17T13:13:23.267 に答える