我有一些通过标签(NSTextField)显示的句子。这些句子有不同的单词,我希望用户单击每个单词,然后根据用户单击的内容显示不同种类的信息。
如果我已正确理解这一点,那么现在看来这与标签是不可能的。我有什么选择?我考虑过将每个单词放在单独的NSButton上(并将按钮的设计更改为不再看起来像Buttons)。但是必须有一个更简单的解决方案吗?
最佳答案
此任务尚无本地决策,但您的方向是正确的:
1)有必要跟踪用户按下的单词
2)必须显示带有选择选项的视图
我有类似的任务,我这样做是:
在检测到用户按下的单词后,我使用UITextView显示了一些文本:
我在我的UITextView上添加了TapGesture,并在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
}
}
例如,如果点击的单词等于“ Lorem”,则我会显示pickerView并带有一些选择,然后(我知道所选的文字位置)我会简单地替换该单词,如果有问题,我可以回答...
抱歉,我没有注意到有关OS X编程的问题,但也可能对您有帮助