2013-07-08 230 views

回答

2

不,沒有公開的API。

你可以儘管私有API嘗試:

UITextField有一個名爲selectionHighlightColorUIColor有一類方法具有相同名稱的實例方法。兩者都返回相同的顏色,應該是[UIColor colorWithRed:0 green:.33 blue:.65 alpha:.2]

+0

打開雷達#14413759把它公開。 –

+0

無論如何,謝謝。順便說一句,是不是有可能從NSLayoutManager,NSTextStorage或類似的後備類獲取顏色? –

+0

@RudolfAdamkovic – mattsven

0

否Apple不提供此類apis。

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 
    } 
} 

直到用戶擡起手指(即使它們在屏幕上移動),它仍將是「選擇」的顏色。不知道這是否真的是你想要的,但也許它會幫助別人。

+0

但順便說一句,如果你只是想讀取選定的背景顏色,你可以詳細說明什麼? –

+0

我只想得到(閱讀)顏色系統使用。 –

1

基於phix23's answer你可以做一個UITextField子類,並覆蓋selectionHighlightColor財產。像:

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

測試中的iOS 9.3,還生產

+0

謝謝,但問題是關於獲取默認顏色不覆蓋和設置一個。 –