タグ付けされた質問 「objective-c」

このタグは、Objective-C機能に関する質問または言語のコードに依存する質問でのみ使用する必要があります。タグ[cocoa]および[cocoa-touch]は、Appleのフレームワークまたはクラスについて質問するために使用する必要があります。これらのプラットフォームに固有の問題には、関連タグ[ios]、[macos]、[apple-watch]、および[tvos]を使用します。

15
UILabelにアウトラインテキストを表示させるにはどうすればよいですか?
私が欲しいのは、白いUILabelテキストの周りの1ピクセルの黒い境界線だけです。 私は以下のコードでUILabelをサブクラス化するところまで行きました。そして、それは機能しますが、非常に遅く(シミュレータを除いて)、テキストを垂直方向に中央揃えすることもできませんでした(そのため、最後の行のy値を一時的にハードコードしました)。ああ! void ShowStringCentered(CGContextRef gc, float x, float y, const char *str) { CGContextSetTextDrawingMode(gc, kCGTextInvisible); CGContextShowTextAtPoint(gc, 0, 0, str, strlen(str)); CGPoint pt = CGContextGetTextPosition(gc); CGContextSetTextDrawingMode(gc, kCGTextFillStroke); CGContextShowTextAtPoint(gc, x - pt.x / 2, y, str, strlen(str)); } - (void)drawRect:(CGRect)rect{ CGContextRef theContext = UIGraphicsGetCurrentContext(); CGRect viewBounds = self.bounds; CGContextTranslateCTM(theContext, 0, viewBounds.size.height); CGContextScaleCTM(theContext, …

23
Objective-Cを学ぶ前に最初にCを学ぶ[終了]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 私は野心的なApple開発者であり、Objective-C、そして最終的にはCocoaフレームワークに移行する前に、まずCを学ぶ方がよいのであれば、コミュニティの意見を聞きたいと思います。 私の直感は、Cを学ぶと言っています。
107 c  objective-c  cocoa 

23
キーボードが表示されたときにUIScrollViewをスクロールするにはどうすればよいですか?
コードに問題があります。私は移動しようとしていますUIScrollViewUITextFieldキーボードポップで非表示にする必要があるを編集しているときにます。 コードで「上にスクロール」する方法がわからないので、今はメインフレームを移動しています。だから、私は少しコードを書きました、それはうまくいきますが、UItextfieldを編集して別のものに切り替えるときUITextFieldし、「戻る」ボタンを押さず、メインビューがずっと上に移動します。 NSLog()以下に示すように、サイズ、距離、およびtextFieldRect.origin.y変数を使用しました。2つUITextFieldを同じ場所(y原点)に配置し、この特定の「スイッチ」(returnキーを押さない)を実行すると、同じ番号が返されますが、コードは最初のUITextField編集では正常に機能しましたが、2番目の編集では機能しませんでした。 これをチェックしてください: - (void)textFieldDidBeginEditing:(UITextField *)textField { { int size; CGRect textFieldRect = [self.view.window convertRect:textField.bounds fromView:textField]; size = textFieldRect.origin.y + textFieldRect.size.height; if (change == FALSE) { size = size - distance; } if (size < PORTRAIT_KEYBOARD_HEIGHT) { distance = 0; } else if (size > PORTRAIT_KEYBOARD_HEIGHT) { distance = …

3
キーストロークが入力されたときにUITextFieldの値を取得しますか?
次のコードがあるとします。 IBOutlet UITextField* nameTextField; IBOutlet UILabel* greetingLabel; greetingLabelユーザーが任意のキーを押したらすぐに、「Hello [nameTextField]」を読みたいと思います。 基本的に必要なのは、Cocoaデリゲートメソッドに相当するiPhone controlTextDidChangeです。 textField:shouldChangeCharactersInRange:デリゲートメソッドは、キーストロークが発生するたびに呼び出されます。 - (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 文字列引数は、押された文字を返します。ただし、実際textFieldの値(nameTextField.text)は空白のままです。 ここで何が欠けていますか?(nameTextFieldユーザーがこれまでに入力した正確な文字列を反映したいと思います)。

11
Objective-Cでnilにメッセージを送信する
AppleのObjective-C 2.0のドキュメントを読んでいるJava開発者として:「メッセージをnilに送信する」とはどういう意味か、それが実際にどのように役立つかは言うまでもありません。ドキュメントからの抜粋: この事実を利用するCocoaにはいくつかのパターンがあります。メッセージからnilに返される値も有効な場合があります。 メソッドがオブジェクト、任意のポインター型、sizeof(void *)以下のサイズの整数スカラー、float、double、long double、またはlong longを返す場合、nilに送信されたメッセージは0を返します。 Mac OS X ABI関数呼び出しガイドで定義されているように、メソッドが構造体を返し、レジスタに返される場合、nilに送信されたメッセージは、データ構造のすべてのフィールドに対して0.0を返します。他の構造体データ型はゼロで埋められません。 メソッドが前述の値タイプ以外のものを返す場合、nilに送信されるメッセージの戻り値は未定義です。 Javaは私の頭脳を上記の説明にぶつけないようにしましたか?または、これをガラスのようにはっきりさせることができる欠けているものはありますか? 私はObjective-Cでメッセージ/レシーバーのアイデアを理解していnilますが、たまたまレシーバーについて混乱しています。
107 objective-c 


10
AppDelegateからストーリーボードの別の場所から条件付きで開始する
ストーリーボードに、有効なログインとメインビューコントローラーを設定しました。後者は、ログインが成功したときにユーザーが移動するビューコントローラーです。私の目的は、認証(キーチェーンに格納されている)が成功した場合はメインビューコントローラをすぐに表示し、認証が失敗した場合はログインビューコントローラを表示することです。基本的に、私はこれをAppDelegateで実行したいと思います。 // url request & response work fine, assume success is a BOOL here // that indicates whether login was successful or not if (success) { // 'push' main view controller } else { // 'push' login view controller } 私はメソッドperformSegueWithIdentifierについて知っています。ただし、このメソッドはUIViewControllerのインスタンスメソッドであるため、AppDelegate内から呼び出すことはできません。既存のストーリーボードを使用してこれを行うにはどうすればよいですか? 編集: Storyboardの最初のビューコントローラは、何にも接続されていないナビゲーションコントローラになりました。MainIdentifierはUITabBarControllerであるため、setRootViewController:の区別を使用しました。それからこれは私の線がどのように見えるかです: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { BOOL …

2
Objective-Cでの「oneway void」の使用例?
NSObject.hで奇妙なキーワードを見つけました - (oneway void)release; 私はWebを検索し、それが非同期メッセージパッシングに関連していることを学びました。これは、Erlangのメッセージパッシングと似ています。 これは多くの興味深いものを作ることができるようです。このキーワードの良いユースケースは何ですか?


5
beginBackgroundTaskWithExpirationHandlerの適切な使用
いつどのように使用するかについて少し混乱していますbeginBackgroundTaskWithExpirationHandler。 Appleは、applicationDidEnterBackgroundデリゲートでそれを使用して、いくつかの重要なタスク(通常はネットワークトランザクション)を完了するためにより多くの時間をかけるために、例で示しています。 私のアプリを見ると、ほとんどのネットワーク関連が重要であるように思われます。アプリを起動したときに、ユーザーがホームボタンを押したらアプリを完成させたいと思います。 それで、すべてのネットワークトランザクションをラップすること(そして私は大きなデータチャンクをダウンロードすることについて話しているのではなく、ほとんどが短いxml)をbeginBackgroundTaskWithExpirationHandler安全な側面に置くことが受け入れられている/良い習慣 ですか?

7
Xcode Debugger:変数の値を表示
UITableViewControllerの私のコード: delegate.myData = [myData objectAtIndex:indexPath.row]; デバッガーの値delegate.myDataまたはindexPath.rowデバッガーの値を確認するにはどうすればよいですか?delegate.myData配列とでindexPath.rowある必要がありintます。私は、オブジェクトのメモリアドレスを見ることができますdelegateし、indexPathしかしどこですmyDataとrow?

22
iPhoneのNSStringからHTMLタグを削除する
削除するにはいくつかの異なる方法があるHTML tagsからNSStringではCocoa。 1つの方法は、文字列をにレンダリングしNSAttributedString、レンダリングされたテキストを取得することです。 別の方法は、NSXMLDocument's- objectByApplyingXSLTStringメソッドを使用XSLTして、それを行う変換を適用することです。 残念ながら、iPhoneはNSAttributedStringまたはをサポートしていませんNSXMLDocument。HTML正規表現またはを使用して快適に感じるには、エッジケースと不正なドキュメントが多すぎNSScannerます。誰かがこれに対する解決策を持っていますか? 開始タグと終了タグの文字を単純に探すという提案が1つありました。この方法は、ごく簡単な場合を除いて機能しません。 たとえば、これらのケース(同じ主題のPerlクックブックの章にある)は、このメソッドを壊します。 <IMG SRC = "foo.gif" ALT = "A > B"> <!-- <A comment> --> <script>if (a<b && a>c)</script> <![INCLUDE CDATA [ >>>>>>>>>>>> ]]>

11
iOS Detect 3GまたはWiFi
これが可能かどうかはわかりませんが、このシナリオがあります。 UISegmentedControllerにリンクが設定されているUIWebViewにWebサイトが表示されています。彼らのウェブサイトはあなたが無線LANまたは3gネットワーク上にいるかどうかを検出できます。 これで、セグメント化されたコントローラーは2つの異なるページを指し示します。1-iPhoneに適したログイン画面2-ログイン後のホームページ。 今ここに質問があります: WIFIと3Gのどちらであるかを検出するようにアプリケーションをプログラムできますか? このようなもの: if (iPhone device is on 3g) { Go to Segment 1; } else { Go to Segment 0; }


6
固定セクションヘッダーのあるUITableView
UITableView挨拶します。次のセクションで前のセクションの行が表示されなくなるまでセクションをスクロールすると、デフォルトの動作ではセクションのヘッダー行がテーブルの上部に固定されます。 私はUITableView内部a を持っていますがUIViewController、これはそうではないようです。 それは単にデフォルトの動作UITableViewControllerですか? ここに私が持っているものに基づいたいくつかの単純化されたコードがあります。UIControllerテーブルビューを作成するために実装したインターフェイスと各テーブルビューメソッドを示します。テーブルで使用するためにオブジェクトにインデックスを付けるのに役立つヘルパーデータソースクラスがあります。 @interface MyUIViewController ()<UITableViewDelegate, UITableViewDataSource> @property (nonatomic, readonly) UITableView *myTableView; @property (nonatomic, readonly) MyCustomHelperDataSource *helperDataSource; @end //when section data is set, get details for each section and reload table on success - (void)setSectionData:(NSArray *)sections { super.sectionData = sections; //this array drives the sections //get additional data …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.