Objective c 点击&;标签中句子的编辑
我有几个句子是通过标签(NSTextField)显示的。这些句子有不同的单词,我希望用户点击每个单词,然后根据用户点击的内容相应地显示不同种类的信息Objective c 点击&;标签中句子的编辑,objective-c,macos,cocoa,nstextfield,nsbutton,Objective C,Macos,Cocoa,Nstextfield,Nsbutton,我有几个句子是通过标签(NSTextField)显示的。这些句子有不同的单词,我希望用户点击每个单词,然后根据用户点击的内容相应地显示不同种类的信息 如果我理解正确的话,这似乎不可能用标签来做。我有什么选择?我考虑将每个单词放在一个单独的按钮上(并将按钮的设计更改为不再像按钮)。但必须有一个更简单的解决方案?此任务没有本机的决策,但您的方向是正确的: 1) 有必要跟踪用户按下的单词 2) 有必要使用选项显示视图 我有一个类似的任务,我这样做: 检测到用户按下的单词后,我使用UITextView显
如果我理解正确的话,这似乎不可能用标签来做。我有什么选择?我考虑将每个单词放在一个单独的按钮上(并将按钮的设计更改为不再像按钮)。但必须有一个更简单的解决方案?此任务没有本机的决策,但您的方向是正确的: 1) 有必要跟踪用户按下的单词 2) 有必要使用选项显示视图 我有一个类似的任务,我这样做: 检测到用户按下的单词后,我使用UITextView显示一些文本: 我在UITextView上添加了Tap手势,并在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”,我会用一些choose显示pickerView,然后(我知道所选的文本位置)我简单地替换这个单词,如果有问题,我可以回答
很抱歉,我没有注意到关于OSX编程的问题,但可能对您也有帮助谢谢。我不熟悉objective-c&cocoa。那么,与UITextView等效的OSX是不是NSTextView?如果我能在OSX上使用你的解决方案,我会看看。谢谢。