2011-08-14 5 views
3

私はNSTextFieldにURLを認識させようとしており、一般的に私のコードが動作します。 hyperlinkFromString:withUrlを使ってNSAttributedStringを拡張する方法について、Appleの指示this pageに従っていて、私のURLはうまく表示されています。しかし、リンクをクリックすると、テキスト形式がいくつかの小さなテキストスタイルとおそらく別のフォントに変わります。私は同じURLを含む2つのNSLabelsで2つの画像を得ました。最初のものはデフォルトの状態を示し、2番目のものは最初のものがクリックされた後の様子を示しています。URLスタイル形式のNSTextField

http://i.stack.imgur.com/SAVa0.png
http://i.stack.imgur.com/rC4Hq.png

これを防ぐために、どのように任意の提案ですか?

+0

に特定NSFontを追加しますか。まず、NSTextViewDelegateを実装し、デリゲートメソッドで 'NSLog'を使用することから始めます:' textView:shouldChangeTextInRange:replacementString: '。メソッドの詳細:http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSTextViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/NSTextViewDelegate/textView:clickedOnLink:atIndex : – AlexFZ

+0

Gah、ちょうどあなたが 'NSTextView'ではなく' NSTextField'を使用していることに気付きました。申し訳ありませんが、私はもっと慎重に読むべきでした。とにかく、私の提案は、関係するすべてのオブジェクトのリスナー/デリゲートメソッドを調べ、実際にテキストがいつ変化しているかを確認するためにprintステートメントを使用することです。その変更をどのようにして停止させるかの検索をどこから開始するのかがわかります。 – AlexFZ

答えて

2

扱わない限り、おそらく自動的に関与NS-オブジェクトのいくつかのいずれかがテキスト属性を変更/言われ、そうでない場合は?あなたのNSAttributedString

[attrString addAttribute:@"NSFont" value:[NSFont systemFontOfSize:10.0] range:range]; 
0

一口...私はこれを自分自身で動作させようとしましたが、NSTextViewを使用する必要がありました。もう一つの選択肢は、カスタムNSTextFieldコードhereです。これは非常にうまくいきます。

関連する問題