mac os x中選中textfield的部分文字

前提

昨天有個(gè)同事問我怎么像系統(tǒng)那樣,點(diǎn)擊文件選擇重命名以后,文件名只選中前半部分,不選中文件格式,我中午弄了好久還是不會(huì),找了一些方法不行,后面問了個(gè)大神,用cell實(shí)現(xiàn),代碼是這樣的:

#import "NSTextField+hh.h"

@implementation NSTextField (hh)

-(void)selectTextRange:(NSRange)range
{
NSText *textEditor = [self.window fieldEditor:YES forObject:self];
if (textEditor) {
    
    id cell = [self selectedCell];
    [cell selectWithFrame:self.bounds
                   inView:self
                   editor:textEditor
                 delegate:self
                    start:range.location
                   length:range.length];
  }
}


@end

這樣就可以實(shí)現(xiàn)了。效果如下:

效果

調(diào)用就是這樣咯:

[self.textfield setStringValue:@"測試中文 ABC123"];
[self.textfield selectTextRange:NSMakeRange(0, 4)];

------------------------分割線------------------------
但是呢,我對(duì)我自己之前研究了半天的方法還是不死心,所以我就又和另一個(gè)大神討論了下,然后也終于實(shí)現(xiàn)了,代碼如下:

- (void)viewDidLoad {
[super viewDidLoad];
NSString* fileName = @"wome.womenshigewefnjian.pdf";


[_shishi setStringValue:fileName];


//    NSMutableString *st = [NSMutableString stringWithFormat:@"%@",fileName];
//把最后一個(gè)“.”之前的字符串拿出來
//    _range = [st rangeOfString:@"." options:NSBackwardsSearch];
//    NSString *str = [st substringToIndex:_range.location];
//設(shè)置為不可選,不然一開始運(yùn)行就會(huì)全部選中
 [_shishi setSelectable:NO];
}


/**
 按鈕的點(diǎn)擊方法

 @param sender nil
 */
- (IBAction)dianji:(id)sender {

    //設(shè)置為可選
    [_shishi setSelectable:YES];

    //這句話的意思是使之成為可編輯狀態(tài)
    [_shishi selectText:self];

 /**
  需要選中的字符串,這個(gè)方法必須在可編輯狀態(tài)下可用,之前就只是設(shè)置了使之成為焦點(diǎn),并不行,后面大神告訴我必須要是可編輯狀態(tài)

  @param 0 起始位置
  @param 4 結(jié)束位置
  @return void
  */
     [[_shishi currentEditor] setSelectedRange: NSMakeRange(0, 4)];

}

效果如下:

效果

那個(gè)range你可以傳其他的,滿足你的需求就好。

總結(jié)

關(guān)于Mac OS X開發(fā)的資料比較少,我就把平時(shí)遇到的記錄下來,就當(dāng)做自己的筆記,以后也就好找了。上面是兩種方法實(shí)現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,023評(píng)論 25 709
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,679評(píng)論 18 399
  • 因?yàn)橐Y(jié)局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細(xì)...
    uniapp閱讀 4,872評(píng)論 0 12
  • 制作篇: 需準(zhǔn)備好的材料:切好的黃瓜絲、切碎的香菜、東北大醬(或豆瓣醬)、雞蛋2~3枚、油、蒜末兒(或蔥末兒)、面...
    咔嚓行動(dòng)閱讀 943評(píng)論 3 7
  • 最近流行一種超牛逼的翅膀,這種翅膀如果安裝在汽車上,汽車想飛就飛,翅膀平時(shí)可收縮起來,要用時(shí)一按按鈕自動(dòng)...
    山水伊人兒閱讀 222評(píng)論 0 1

友情鏈接更多精彩內(nèi)容