Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。
(Wikipedia:http://ja.wikipedia.org/wiki/Objective-C より)
前スレ
Objective-C [ObjC part:8.1];
http://mevius.2ch.net/test/read.cgi/tech/1414816517/
Objective-C [ObjC part:8];
http://peace.2ch.net/test/read.cgi/tech/1356341803/
Objective-C [ObjC part:7];
http://toro.2ch.net/test/read.cgi/tech/1330330906/
Objective-C [ObjC part:6];
http://toro.2ch.net/test/read.cgi/tech/1313891268/
Objective-C [ObjC part:5];
http://hibari.2ch.net/test/read.cgi/tech/1279730299/
Objective-C [ObjC part:4];
http://pc12.2ch.net/test/read.cgi/tech/1239721860/
Objective-C [ObjC part:3];
ttp://pc12.2ch.net/test/read.cgi/tech/1186543111/
Objective-C
ttp://pc11.2ch.net/test/read.cgi/tech/1106983092/
Objective-C
ttp://pc5.2ch.net/tech/kako/990/990574267.html
探検
Objective-C [ObjC part:9];
■ このスレッドは過去ログ倉庫に格納されています
2017/11/17(金) 21:00:33.77ID:oYmLZZ1y
10098
2019/05/20(月) 07:42:36.82ID:fPO8FQDL >>99
どうもです。
文字は、Mac版では最終的には Core Text で描かれるのですけど、自分がやらなくてはならないのは IM から
受け取った NSAttributedString を直接描くのではなく、それをその言語のテキストオブジェクトに反映させる
(それは既存の仕組みで結果的に描かれる)ということをしなくてはならないのです。
その NSAttributedString そのものを Cocoa フレームワークなり Core Text フレームワークなりに引き渡して描か
せられれば、多分アンダーラインもいつも見ている形で勝手に表現されると予想してるんですが、それが出来ないのが
辛いところで。それでアトリビュートを解析する必要があるのです。
その言語のGUIにはアンダーラインを表示する仕組みがないので、そっちは自分でOpenGLで描かねばならんのですが...
どこまで Cocoa なのかは、NSAttributedString から文字列と、そのアトリビュート情報を取り出すまで、ということ
になります。
どうもです。
文字は、Mac版では最終的には Core Text で描かれるのですけど、自分がやらなくてはならないのは IM から
受け取った NSAttributedString を直接描くのではなく、それをその言語のテキストオブジェクトに反映させる
(それは既存の仕組みで結果的に描かれる)ということをしなくてはならないのです。
その NSAttributedString そのものを Cocoa フレームワークなり Core Text フレームワークなりに引き渡して描か
せられれば、多分アンダーラインもいつも見ている形で勝手に表現されると予想してるんですが、それが出来ないのが
辛いところで。それでアトリビュートを解析する必要があるのです。
その言語のGUIにはアンダーラインを表示する仕組みがないので、そっちは自分でOpenGLで描かねばならんのですが...
どこまで Cocoa なのかは、NSAttributedString から文字列と、そのアトリビュート情報を取り出すまで、ということ
になります。
101デフォルトの名無しさん
2019/05/20(月) 09:39:20.61ID:b4QONOVW んー、よくわからんw
IMで入力中の文節を知りたいの?描画を自分でするんでなくて。「アトリビュートを解析する必要がある」「アンダーラインを表示する仕組みがない〜自分でOpenGLで描かねば」てことは
>>98の
>setMarkedText:selectedRange:〜
はそれで文節を得ようとしてもできなかったということか、単に。「切れ目のところでも同じアンダーラインが連続しているって描画」かなと思った
であれば、あとちょっとだけじゃないのかな
setMarkedText:string 〜 selectedRange:
の、string の NSMarkedClauseSegmentAttributeName の値で文節を表しているっぽいけど。それででいいんじゃないかな。他のIM(Google)だとどうなんだろ、同じような気がしないでもない、いや、同じでじゃないと困るかな
NSLog(@"%@", string); すると、
私の{
NSMarkedClauseSegment = 0;
NSUnderline = 2;
}名前は{
NSMarkedClauseSegment = 1;
NSUnderline = 1;
}中野です{
NSMarkedClauseSegment = 2;
NSUnderline = 1;
}
のように、そのまんまのようだけど
IMで入力中の文節を知りたいの?描画を自分でするんでなくて。「アトリビュートを解析する必要がある」「アンダーラインを表示する仕組みがない〜自分でOpenGLで描かねば」てことは
>>98の
>setMarkedText:selectedRange:〜
はそれで文節を得ようとしてもできなかったということか、単に。「切れ目のところでも同じアンダーラインが連続しているって描画」かなと思った
であれば、あとちょっとだけじゃないのかな
setMarkedText:string 〜 selectedRange:
の、string の NSMarkedClauseSegmentAttributeName の値で文節を表しているっぽいけど。それででいいんじゃないかな。他のIM(Google)だとどうなんだろ、同じような気がしないでもない、いや、同じでじゃないと困るかな
NSLog(@"%@", string); すると、
私の{
NSMarkedClauseSegment = 0;
NSUnderline = 2;
}名前は{
NSMarkedClauseSegment = 1;
NSUnderline = 1;
}中野です{
NSMarkedClauseSegment = 2;
NSUnderline = 1;
}
のように、そのまんまのようだけど
102デフォルトの名無しさん
2019/05/20(月) 09:41:09.96ID:b4QONOVW >切れ目のところでも同じアンダーラインが連続しているって描画」かなと思った
切れ目のところでも同じアンダーラインが連続している」って描画かなと思った
>setMarkedText:string 〜 selectedRange:
setMarkedText:string selectedRange:〜
切れ目のところでも同じアンダーラインが連続している」って描画かなと思った
>setMarkedText:string 〜 selectedRange:
setMarkedText:string selectedRange:〜
10398
2019/05/20(月) 10:04:15.41ID:+/LM9KJj >>101
>string の NSMarkedClauseSegmentAttributeName の値で文節を表しているっぽいけど。
素晴らしい情報、ありがとうございます! これで問い合わせれば行けそうな気がします。
アンダーラインのアトリビュートで表現されていると思っていたのと、他のアトリビュートを
見つけられなかったのが問題でした。帰ったら試してみます。
> IMで入力中の文節を知りたいの?描画を自分でするんでなくて。「アトリビュートを解析する
> 必要がある」「アンダーラインを表示する仕組みがない〜自分でOpenGLで描かねば」てことは
そうなんです。未確定文字列の文節を見つけたいということです。
この例で示していただいた「私の名前は中野です」の「名前は」と「中野です」が、両方共
NSUnderline = 1だからなのか、attribute:atIndex:effectiveRange: の指定アトリビュートをNSUnderlineStyleAttributeName にすると同じレンジで回答されてしまって切り出せなかった
のです。
もう少し私も賢くなりたいので、NSLog(@"%@", string); をどこに書いてこれを調べられたのか
教えていただけませんか。それがわかっていれば、お手を煩わせることもなかったはず。
>string の NSMarkedClauseSegmentAttributeName の値で文節を表しているっぽいけど。
素晴らしい情報、ありがとうございます! これで問い合わせれば行けそうな気がします。
アンダーラインのアトリビュートで表現されていると思っていたのと、他のアトリビュートを
見つけられなかったのが問題でした。帰ったら試してみます。
> IMで入力中の文節を知りたいの?描画を自分でするんでなくて。「アトリビュートを解析する
> 必要がある」「アンダーラインを表示する仕組みがない〜自分でOpenGLで描かねば」てことは
そうなんです。未確定文字列の文節を見つけたいということです。
この例で示していただいた「私の名前は中野です」の「名前は」と「中野です」が、両方共
NSUnderline = 1だからなのか、attribute:atIndex:effectiveRange: の指定アトリビュートをNSUnderlineStyleAttributeName にすると同じレンジで回答されてしまって切り出せなかった
のです。
もう少し私も賢くなりたいので、NSLog(@"%@", string); をどこに書いてこれを調べられたのか
教えていただけませんか。それがわかっていれば、お手を煩わせることもなかったはず。
104デフォルトの名無しさん
2019/05/20(月) 10:06:45.75ID:b4QONOVW アトリビュートの内容自体も知らんでいいっぽいかな。文節毎の文字数がわかればいいだろう的では、
NSMutableArray *wardLengthList = [[NSMutableArray alloc] init];
const NSUInteger length = string.length;
NSUInteger index = 0;
while( index < length ){
NSRange range;
[string attributesAtIndex:index effectiveRange:&range];
[wardLengthList addObject:@(range.length)];
index = range.location + range.length;
}
NSLog( @"%@", wardLengthList );
で、よさげ
NSMutableArray *wardLengthList = [[NSMutableArray alloc] init];
const NSUInteger length = string.length;
NSUInteger index = 0;
while( index < length ){
NSRange range;
[string attributesAtIndex:index effectiveRange:&range];
[wardLengthList addObject:@(range.length)];
index = range.location + range.length;
}
NSLog( @"%@", wardLengthList );
で、よさげ
105デフォルトの名無しさん
2019/05/20(月) 10:08:16.92ID:b4QONOVW10698
2019/05/20(月) 11:15:32.69ID:+/LM9KJj >>105
>setMarkedText:〜
>の最初
NSTextInputClient を実装した View を作って、その setMarkedText:〜の最初に書いた
ということですか? 既存の View を継承して、setMarkedText:〜だけオーバーライド
すればいいのかな。いずれにしても、ありがとうございました。
>setMarkedText:〜
>の最初
NSTextInputClient を実装した View を作って、その setMarkedText:〜の最初に書いた
ということですか? 既存の View を継承して、setMarkedText:〜だけオーバーライド
すればいいのかな。いずれにしても、ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★2 [蚤の市★]
- クリスマスの「予定なし」54% [少考さん★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪★5
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- 茶ぁしばこうや··· ( ¨̮ )︎︎𖠚ᐝ3
- お前ら 寒さ対策どうしてるの [769050516]
- 高市早苗筆頭に与野党58人「衆院に女子トイレ増設しなさいッ!」委員長に要望書を突きつける [377482965]
- 14日(日)正午までに東京都心で15cmを超える降雪予想😱☃❄ [718678614]
