2016-01-23 62 views
2

我有几个句子通过标签(NSTextField)显示。这些句子有不同的单词,我希望用户点击每个单词,因此,根据用户点击的内容显示不同类型的信息。单击并编辑标签中的句子单词

现在,如果我正确地理解了这一点,对标签来说这似乎是不可能的。我有什么替代方案?我想将每个单词放在一个单独的NSButton上(并将按钮的设计更改为不再像按钮一样)。但是必须有一个更简单的解决方案呢?

回答

1

有这个任务没有原生的决定,但你在正确的方向看:

1)有必要跟踪用户按压

2)有必要显示视图字与选择的选项

我有类似的任务,我做了这么:

我用的UITextView显示一些文字后,我发现,用户按下了一句话: 我加TapGesture我的UITextView,并禁用“ Ë ditable”中的UITextView

- (IBAction)gestureAction:(UITapGestureRecognizer *)sender 
{ 
    _textView = (UITextView *)sender.view; 
    CGPoint location = [sender locationInView:_textView]; 
    CGPoint position = CGPointMake(location.x, location.y); 

    //get location in text 
    UITextPosition *tapPosition = [_textView closestPositionToPoint:position]; 

    //word position 
    UITextRange *textRange = [_textView.tokenizer rangeEnclosingPosition:tapPosition withGranularity:UITextGranularityWord inDirection:UITextLayoutDirectionRight]; 
    NSString *tappedSentence = [_textView textInRange:textRange]; 
    NSLog(@"selected :%@ -- %@",tappedSentence,tapPosition); 

    if ([tappedSentence isEqualToString:@"Lorem"]) 
    { 
     //show choise view 
    } 
} 

例如,如果挖掘字等于‘排版’中,我告诉pickerView一些选择,后(我知道所选文本的位置)我只需更换这个词,如果有问题, ,我可以回答...

PS抱歉,我没有注意到有关OS X编程的问题,但也可能对您有所帮助

+0

谢谢。我是Objective-C和可可的新手。那么相当于UITextView的OSX应该是NSTextView吗?我会看看是否可以在OSX上使用你的解决方案。非常感谢。 – dorianbay

+0

Ок,我将我的代码转换成OS X –